• Clion-MinGW编译后的exe文件添加ico图标


    编译前准备

    我们正常直接编译后生成的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
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39

    圆角制作 , 圆制作 , ioc图片制作

    在这里插入图片描述

    1.编译ico.rc>ico.o

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

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

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

    在这里插入图片描述

    2.编译为执行文件exe

    手动编译

    进入项目的根目录然后

    gcc  module/calculate/calculate.c  module/str/str.c  ico.o -g -o  main  main.c
    
    • 1

    注意: 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
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    点赞 -收藏-关注-便于以后复习和收到最新内容
    有其他问题在评论区讨论-或者私信我-收到会在第一时间回复
    感谢,配合,希望我的努力对你有帮助^_^

    免责声明:本文部分素材来源于网络,版权归原创者所有,如存在文章/图片/音视频等使用不当的情况,请随时私信联系我。
  • 相关阅读:
    goland的Markdown拖动插入链接编码有问题
    前端测试——端对端测试框架 Playwright 总结
    Redis(一):redis基本数据类型与底层存储结构
    git 构建报错
    Java 虚拟机操作码探秘:常量指令
    暑期结束为你的新学期立下Flag吧
    【计算机网络】计算机网络复习总结 ------ 物理层
    联合教育部高等学校科学研究发展中心,阿依瓦科技创新教育专项正式发布!
    基于Java+Springboot+Vue前后端分离的商品进销存管管理系统
    [附源码]Python计算机毕业设计SSM晋中学院教室管理系统(程序+LW)
  • 原文地址:https://blog.csdn.net/weixin_45203607/article/details/125617411