一.先准备一张.ico图片和一份.rc文件
.ico图片可以用在线工具转换获取;.rc文件可以新建一个记事本文件并添加相关信息,然后将后缀改为.rc。这里将logo.ico、version.rc和main.cpp放在同一个目录
1.logo.ico
2.version.rc
# if defined(UNDER_CE)
# include <winbase.h>
# else
# include <windows.h>
# endif
IDI_ICON1 ICON DISCARDABLE "logo.ico"//设置图标
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,0,0
PRODUCTVERSION 1,0,0,0
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 "040904b0"
BEGIN
VALUE "CompanyName", "草上爬\0"
VALUE "FileDescription", "你好,世界\0"
VALUE "FileVersion", "1.0.0.0\0"
VALUE "LegalCopyright", "@2023\0"
VALUE "OriginalFilename", "应用程序.exe\0"
VALUE "ProductName", "HelloWorld"
VALUE "ProductVersion", "1.0.0.0\0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x804, 1200//中文
END
END
3.main.cpp
#include <iostream>
int main(int argc, char *argv[])
{
std::cout << "HelloWorld" << std::endl;
return 0;
}
二.新建CMakeLists.txt
cmake_minimum_required(VERSION 3.5.0)
project(HelloWorld)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
if(CMAKE_VERSION VERSION_LESS "3.7.0")
set(CMAKE_INCLUDE_CURRENT_DIR ON)
endif()
add_executable(HelloWorld
main.cpp
version.rc
)
target_link_libraries(HelloWorld)
其实这和Qt给exe添加图标和详细信息类型,Qt只需在Pro文件中添加
RC_FILE += version.rc
三.编译生成的HelloWord.exe
需要注意的是,如果详细信息中出现中文乱码,是编码格式的问题,用记事本打开.rc文件,点击另存为,将编码格式改为ANSI。