cmake 在windows下,如何为 exe 文件指定图标文件

时间: 2024-03-26 10:39:55 浏览: 26
可以使用 cmake 中的 `WIN32_EXECUTABLE` 属性来指定 exe 文件的图标文件。具体步骤如下: 1. 将图标文件(.ico 格式)添加到项目中,例如放在 `resources` 目录下。 2. 在 CMakeLists.txt 文件中添加以下代码: ```cmake if(WIN32) set(WIN_ICON "${CMAKE_CURRENT_SOURCE_DIR}/resources/icon.ico") set_property(TARGET ${PROJECT_NAME} PROPERTY WIN32_EXECUTABLE TRUE) set_property(TARGET ${PROJECT_NAME} APPEND_STRING PROPERTY LINK_FLAGS " /ICON:\"${WIN_ICON}\"") endif() ``` 这里的 `PROJECT_NAME` 是你的项目名称,`WIN_ICON` 是指定的图标文件路径。 3. 重新生成项目,生成的 exe 文件会带有指定的图标。
相关问题

windows下 使用 cmake + mingw64 编译 exe时,如何指定 exe 的图标文件

在 Windows 下,使用 CMake 和 MinGW64 编译 exe 文件时,可以通过修改链接器的命令行参数来指定 exe 文件的图标文件。 具体步骤如下: 1. 在 CMakeLists.txt 文件中添加以下代码: ```cmake if(WIN32) set(WIN_ICON "${CMAKE_CURRENT_SOURCE_DIR}/path/to/icon.ico") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-subsystem,windows,-mwindows,-lcomctl32 -Wl,--out-implib,lib${PROJECT_NAME}.a -Wl,--output-def,${PROJECT_NAME}.def -Wl,--enable-stdcall-fixup -Wl,--stack,0x00200000,--enable-auto-image-base,--no-demangle,--add-stdcall-alias,--kill-at") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-H${WIN_ICON}") endif() ``` 这里的 `WIN_ICON` 是指定的图标文件路径。 2. 使用 CMake 和 MinGW64 生成 Makefile。 3. 在命令行中进入到生成的 build 目录,执行 `mingw32-make` 命令进行编译。 编译完成后,生成的 exe 文件会带有指定的图标。 注意:这里使用的是 `-H` 选项来指定 exe 文件的图标,而不是 `-I` 选项,因为在 MinGW64 中,`-I` 选项已经被用于指定头文件路径了。

QT 在 windows 下,使用CMAKE 构建项目时,如何指定 exe 的图标文件

在使用CMake构建QT项目时,可以通过以下步骤指定exe的图标文件: 1. 在CMakeLists.txt文件中添加以下代码,其中,path/to/icon.ico是指向图标文件的路径。 ``` if(WIN32) set(CMAKE_RC_COMPILER_INIT windres) ENABLE_LANGUAGE(RC) SET(CMAKE_RC_COMPILE_OBJECT "<CMAKE_RC_COMPILER> -O coff -I${CMAKE_CURRENT_SOURCE_DIR} -i <SOURCE> -o <OBJECT>") SET(ICON_PATH path/to/icon.ico) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resource.rc.in ${CMAKE_CURRENT_BINARY_DIR}/resource.rc) set(CMAKE_RC_FLAGS "-c 65001") set(SOURCE_FILES ${SOURCE_FILES} ${CMAKE_CURRENT_BINARY_DIR}/resource.rc) endif(WIN32) ``` 2. 在项目根目录下新建resource.rc.in文件,添加以下代码: ``` IDI_ICON1 ICON DISCARDABLE "${ICON_PATH}" ``` 3. 在CMakeLists.txt文件中添加以下代码,将resource.rc文件添加到项目中: ``` if(WIN32) set(SOURCE_FILES ${SOURCE_FILES} ${CMAKE_CURRENT_BINARY_DIR}/resource.rc) endif(WIN32) ``` 4. 在生成exe文件的命令中,添加以下代码,将resource.rc文件链接到exe文件中: ``` if(WIN32) add_executable(${PROJECT_NAME} WIN32 ${SOURCE_FILES}) endif(WIN32) ``` 指定图标后,重新构建项目,生成的exe文件就会显示指定的图标了。

相关推荐

最新推荐

recommend-type

cmake 构建多文件多目录项目教程

cmake 常用的环境变量,cmake 多文件多目录的学习的简易例子,cmake 学习的基础知识, cmake 常用的Linux代码目录构建方式
recommend-type

WIndows下超详细的QtMqtt编译配置教程

WIndows下超详细的QtMqtt编译配置教程,包含了QtMqtt源码下载、编译配置、QtMqtt帮助手册生成配置。
recommend-type

VS2019中CMake项目如何指定c++语言标准

主要介绍了VS2019中CMake项目如何指定c++语言标准,需要的朋友可以参考下
recommend-type

linux系统下采用vscode+cmake+gcc+gdb开发实例详细介绍

linux系统下采用vscode+cmake+gcc+gdb开发实例详细介绍
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

list根据id查询pid 然后依次获取到所有的子节点数据

可以使用递归的方式来实现根据id查询pid并获取所有子节点数据。具体实现可以参考以下代码: ``` def get_children_nodes(nodes, parent_id): children = [] for node in nodes: if node['pid'] == parent_id: node['children'] = get_children_nodes(nodes, node['id']) children.append(node) return children # 测试数
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。
recommend-type

"互动学习:行动中的多样性与论文攻读经历"

多样性她- 事实上SCI NCES你的时间表ECOLEDO C Tora SC和NCESPOUR l’Ingén学习互动,互动学习以行动为中心的强化学习学会互动,互动学习,以行动为中心的强化学习计算机科学博士论文于2021年9月28日在Villeneuve d'Asq公开支持马修·瑟林评审团主席法布里斯·勒菲弗尔阿维尼翁大学教授论文指导奥利维尔·皮耶昆谷歌研究教授:智囊团论文联合主任菲利普·普雷教授,大学。里尔/CRISTAL/因里亚报告员奥利维耶·西格德索邦大学报告员卢多维奇·德诺耶教授,Facebook /索邦大学审查员越南圣迈IMT Atlantic高级讲师邀请弗洛里安·斯特鲁布博士,Deepmind对于那些及时看到自己错误的人...3谢谢你首先,我要感谢我的两位博士生导师Olivier和Philippe。奥利维尔,"站在巨人的肩膀上"这句话对你来说完全有意义了。从科学上讲,你知道在这篇论文的(许多)错误中,你是我可以依