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文件就会显示指定的图标了。