亲宝软件园·资讯

展开

Clion-MinGW添加图标

胡安民 人气:0

编译前准备

我们正常直接编译后生成的exe是没有任何图标的


那么很多exe程序都是有个性图标的那么在vs和qt中是比较简单的可是在Clion编译中怎么才能添加呢?

前提条件,本机必须配置好MinGW,并且环境变量也都添加了

经过自己研究发现,我们需要创建一个ico.rc文件放在项目的根目录, 然后给这个文件添加一些配置信息

id ICON "logo.ico"   //添加图标
#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", "版权所有 (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

然后将图标命名为logo.ico 放在项目的根目录,之后我们需要将ico.rc文件编译为ico.o

windres -i "ico.rc" -o "ico.o"  

然后有两种方式,手动打包exe和使用Clion编译exe ,下面图片是项目结构和主文件

2.编译为执行文件exe

手动编译

进入项目的根目录然后

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 需要编译进exe中才会生效

Clion编译

然后我们进行编译,就会将图标和信息都添加到exe中了

效果

想要非常好看的图标,可以使用ps自行修

详细信息乱码解决

这是啥问题呢? 这是因为windows默认的是ANSI码 ,而我们使用的是UTF-8编译的ico.rc文件

解决办法使用NotePad++ 将ico.rc文件的UTF-8编码转换为ANSI码 ,然后Ctrl+s保存

之后依据上面的教程, 将ioc.rc从新编译为ioc.o文件,然后在重新打包项目为.exe ,效果如下:

修改exe图标无效

当我们想将exe的图标换成其他的图标,发现新的图标只要和旧的图标名称一样那么,自动就会变为旧的图标,这是因为windows,ico缓存的问题

解决办法 在cmd中输入下命令就行了

taskkill /im explorer.exe /f     
cd /d %userprofile%\appdata\local
del iconcache.db /a
start explorer.exe
exit

加载全部内容

相关教程
猜你喜欢
用户评论