Bagaimana cara menambahkan ikon ke file executable mingw-gcc yang dikompilasi?


90

Di Windows, menggunakan mingw's gcc, apakah ada cara untuk menentukan bahwa file exe keluaran adalah untuk mengambil file ikon, sehingga file exe ditampilkan dengan ikon itu di explorer?

Jawaban:


187

Anda perlu membuat ikon terlebih dahulu. Maka Anda perlu membuat file RC dengan konten di bawah ini. Di sini kami akan menamainya sebagai my.rc.

Yang iddisebutkan dalam perintah di atas bisa berarti apa saja. Tidak masalah kecuali jika Anda ingin merujuknya di kode Anda. Kemudian jalankan windres sebagai berikut:

Kemudian saat membangun file yang dapat dieksekusi, bersama dengan file objek dan file sumber daya lainnya, sertakan my.resyang kami dapatkan dari langkah di atas. misalnya:

Dan seharusnya hanya itu saja.


Dan, tanpa biaya tambahan, jika Anda ingin memasukkan informasi versi dalam aplikasi Anda, tambahkan boilerplate berikut ke .rcfile baru dan ikuti langkah-langkah yang disebutkan di atas.

Perhatikan, langID adalah untuk Inggris Inggris (yang merupakan pelokalan terdekat dengan Australia yang dapat saya identifikasi.) Jika Anda menginginkan "Bahasa Inggris" AS, ubah BLOCK baris menjadi:

dan baris terjemahan ke:

Lihat sumber daya VERSIONINFO untuk info.


6
Akan lebih bagus jika contoh menunjukkan di mana harus memasukkan baris ICON.
chacham15


Anda juga dapat menyertakan beberapa "Terjemahan" (ini hanya memberi tahu Windows bahwa program ini diterjemahkan) hanya dengan menambahkan WORD, WORD-pair, misalnya: VALUE "Translation", 0x409, 1252, 0x809, 1252akan mengaktifkan bahasa Inggris AS dan Inggris Raya menurut msdn.microsoft.com/en-us/ library / aa381058.aspx . Ini juga memberi tahu Anda bahwa Anda dapat menyertakan lebih dari satu 'BLOK "lang04E4"'
WorldSEnder

Saya menggunakan utilitas gratis Nirsoft IconsExtractuntuk mendapatkan ikon yang disematkan di exeyang saya butuhkan.
Evgeni Sergeev

6

Dalam file RC, nameID bahkan tidak harus berupa nama, hanya bisa berupa integer. Nama file harus dikutip hanya jika mengandung spasi. Dari pada:

Kamu dapat memakai:


1
Saya tidak bisa menautkan my.odengan MinGW g++setelahnya windres my.rc my.o( WinMainpesan kesalahan terkait beberapa ), tetapi windres my.rc -O coff -o my.resjalur berfungsi dengan baik.
Evgeni Sergeev

.o(= COFF secara otomatis; Saya menamakannya seperti my.res.ountuk kejelasan) bekerja untuk saya. Sebenarnya .resfile yang dihasilkan oleh MSVC memiliki format yang berbeda, jadi sepertinya menjadi ganjil / tidak kompatibel menggunakan COFF di.res
kxr

1

Coba Resource Hacker. Saya dapat mengkompilasi silang proyek saya di Linux (WSL) dan menghasilkan ikon dari logo di beranda. Hanya membutuhkan cara sederhana untuk menyematkannya di exe dan program ini bekerja dengan baik. Resource Hacker oleh Angus Johnson


Ini jauh lebih mudah. Baru saja membuka .exe, klik "Tambahkan Biner atau Sumber Daya Gambar", buka file .ico, dan simpan.
endolith
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.