Clion-MinGW編譯后的exe文件添加ico圖標(biāo)的操作方法
編譯前準(zhǔn)備
我們正常直接編譯后生成的exe是沒有任何圖標(biāo)的
那么很多exe程序都是有個性圖標(biāo)的那么在vs和qt中是比較簡單的可是在Clion編譯中怎么才能添加呢?
前提條件,本機(jī)必須配置好MinGW,并且環(huán)境變量也都添加了
經(jīng)過自己研究發(fā)現(xiàn),我們需要創(chuàng)建一個ico.rc
文件放在項目的根目錄, 然后給這個文件添加一些配置信息
id ICON "logo.ico" //添加圖標(biāo) #include <winver.h> VS_VERSION_INFO VERSIONINFO FILEVERSION 1,0,0,10 PRODUCTVERSION 1,0,0,10 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS VS_FF_DEBUG #else FILEFLAGS 0x0L #endif FILEOS VOS__WINDOWS32 FILETYPE VFT_DLL FILESUBTYPE 0x0L BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "080404b0" //支持中文 BEGIN VALUE "CompanyName", "***有限公司\0" VALUE "FileDescription", "軟件名稱\0" VALUE "FileVersion", "1.0.0.10\0" VALUE "ProductVersion", "1.0.0.10\0" VALUE "LegalCopyright", "版權(quán)所有 (C) ***有限公司\0" VALUE "LegalTrademarks", "***有限公司\0" VALUE "OriginalFilename", "version.exe\0" VALUE "ProductName", "軟件名稱\0" VALUE "InternalName", "version.exe\0" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x804, 1200 //語言-簡體中文 END END
圓角制作 , 圓制作 , ioc圖片制作
1.編譯ico.rc>ico.o
然后將圖標(biāo)命名為logo.ico
放在項目的根目錄,之后我們需要將ico.rc文件編譯為ico.o
windres -i "ico.rc" -o "ico.o"
然后有兩種方式,手動打包exe和使用Clion編譯exe ,下面圖片是項目結(jié)構(gòu)和主文件
2.編譯為執(zhí)行文件exe
手動編譯
進(jìn)入項目的根目錄然后
gcc module/calculate/calculate.c module/str/str.c ico.o -g -o main main.c
注意: module/calculate/calculate.c module/str/str.c 這些都是 main.c的依賴文件,打包的時候都需要一起帶上 ,而ico.o 需要編譯進(jìn)exe中才會生效
Clion編譯
然后我們進(jìn)行編譯,就會將圖標(biāo)和信息都添加到exe中了
效果
想要非常好看的圖標(biāo),可以使用ps自行修
詳細(xì)信息亂碼解決
這是啥問題呢? 這是因為windows默認(rèn)的是ANSI碼 ,而我們使用的是UTF-8編譯的ico.rc文件
解決辦法使用NotePad++ 將ico.rc文件的UTF-8編碼轉(zhuǎn)換為ANSI碼 ,然后Ctrl+s
保存
之后依據(jù)上面的教程, 將ioc.rc從新編譯為ioc.o文件,然后在重新打包項目為.exe
,效果如下:
修改exe圖標(biāo)無效
當(dāng)我們想將exe的圖標(biāo)換成其他的圖標(biāo),發(fā)現(xiàn)新的圖標(biāo)只要和舊的圖標(biāo)名稱一樣那么,自動就會變?yōu)榕f的圖標(biāo),這是因為windows,ico緩存的問題
解決辦法 在cmd中輸入下命令就行了
taskkill /im explorer.exe /f cd /d %userprofile%\appdata\local del iconcache.db /a start explorer.exe exit
到此這篇關(guān)于Clion-MinGW編譯后的exe文件添加ico圖標(biāo)的文章就介紹到這了,更多相關(guān)Clion-MinGW添加圖標(biāo)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C語言for循環(huán)嵌套for循環(huán)在實踐題目中應(yīng)用詳解
初學(xué)C語言,常常遇到for循環(huán)中嵌套個for循環(huán),初學(xué)者對于這種形式總是一知半解,這次我就整理了常見的for循環(huán)嵌套for循環(huán)的題目,我們一起爭取一舉拿下這類題。學(xué)廢他們,以后再見到就不怕啦!每天都要學(xué)一點(diǎn)呀。加油,奮斗的我們2022-05-05C++中constexpr與函數(shù)參數(shù)轉(zhuǎn)發(fā)的操作方法
constexpr是c++11引入的關(guān)鍵字,c++11的constexpr的函數(shù)中只是支持單句代碼,c++14限制放寬,可以在里邊寫循環(huán)及邏輯判斷等語句,本文探討關(guān)于constexpr的函數(shù)中參數(shù)的現(xiàn)象,以及如果參數(shù)是constexpr如何做轉(zhuǎn)發(fā),感興趣的朋友一起看看吧2024-02-02C語言靜態(tài)版通訊錄的設(shè)計與實現(xiàn)
靜態(tài)版通訊錄是一種簡單的通訊錄實現(xiàn)方式,通過定義固定的數(shù)組大小來存儲聯(lián)系人信息。該方法不支持動態(tài)增刪聯(lián)系人,但具有實現(xiàn)簡單、易于理解的優(yōu)點(diǎn)。在程序設(shè)計中,需注意數(shù)組邊界溢出等問題2023-04-04C++ 中dynamic_cast<>的使用方法小結(jié)
將一個基類對象指針(或引用)cast到繼承類指針,dynamic_cast會根據(jù)基類指針是否真正指向繼承類指針來做相應(yīng)處理2013-03-03