CMake开发图形化界面程序的一些配置

CMake开发图形化界面程序的一些配置

总结两个常遇到的开发轻量级C/C++图形化界面程序的CMake配置,分别是“怎么样给.exe程序添加图标”“怎样避免启动UI界面程序时连终端一起弹出”,主要都是通过CMakeLists.txt实现,平台是MSYS2的mingw64工具链

怎么样给.exe程序添加图标

阿里巴巴矢量图标库https://www.iconfont.cn/

线上免费svg转ico工具:https://www.freeconvert.com/zh-CN/svg-to-ico

我们首先会在如这种图标网站下载一个程序的图标,通常我们会选择下载.svg格式而不是.png格式,因为文件体积更小且渲染的话更清晰(其实文件大小的话差不多),但是开发Windows的.exe程序时不能用.svg格式图标,要把.svg格式图标转换为.ico格式图标(如果用.png格式图标的话直接配置进去用就行没有影响),这时可以用线上或线下的轻量级工具进行转换,如上面链接

# app.rc文件

IDI_ICON1 ICON DISCARDABLE "gogame.ico"

// 开发环境:MSYS2 mingw64、CMake、VSCode(CMake插件)

配置到CMake作为C/C++编译的.exe程序的图标的方法首先是创建一个app.rc文件将.ico图标写进去,这里只写一行追求最简配置,注意这里只写了gogame.ico 文件名意思是它和CMakeLists.txt同级目录(所以不用写绝对路径)

# 程序图标
if(WIN32)
    set(APP_RC ${CMAKE_SOURCE_DIR}/app.rc)
    if(MINGW)
        set_source_files_properties(${APP_RC} PROPERTIES LANGUAGE RC)
    endif()
endif()

# 添加到编译源文件
add_executable(${PROJECT_NAME} 
    main.cpp
    main_item.cpp
    main_win.cpp
    ${APP_RC}

CMakeLists.txt中主要是加上这两个地方,第一块配置可以直接复制粘贴进去,注意还要将“${APP_RC}”这一块表示“图标配置”的添加到和.cpp文件一起编译

编译完成后生成的.exe文件就会有图标了

怎样避免启动UI界面程序时连终端一起弹出

# 启动程序不弹出终端
if(MINGW)
    target_link_options(${PROJECT_NAME} PRIVATE -mwindows)
endif()

同样也是加一段CMakeLists.txt配置即可,注意这一段必须加在add_executable配置的后面,不然构建会报错,这样点击.exe运行该程序就只会弹出UI窗口不会弹出黑窗终端影响观感

博客园图片

这是添加这项配置前的双击点击运行效果

博客园图片

这是添加这项配置后的双击点击运行效果

posted @ 2026-07-11 16:23  XIE_CON  阅读(14)  评论(0)    收藏  举报