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窗口不会弹出黑窗终端影响观感
这是添加这项配置前的双击点击运行效果
这是添加这项配置后的双击点击运行效果
浙公网安备 33010602011771号