在Windows+VS环境下为Vcpkg编译的cpprestsdk DLL添加VERSIONINFO资源
为vcpkg编译的cpprestsdk动态库添加VERSIONINFO资源
步骤1:以可编辑模式安装cpprestsdk
执行以下命令,让vcpkg将cpprestsdk的源码下载到可修改目录并保留编译关联:
vcpkg.exe install cpprestsdk --triplet x64-windows --editable
执行后,cpprestsdk源码会存放在vcpkg/ports/cpprestsdk路径下。
步骤2:创建VERSIONINFO资源文件
在cpprestsdk源码根目录(如vcpkg/ports/cpprestsdk/cpprestsdk)新建version.rc文件,填入以下内容(可按需修改字段值):
#include <windows.h> VS_VERSION_INFO VERSIONINFO FILEVERSION 2,10,0,0 PRODUCTVERSION 2,10,0,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS VS_FF_DEBUG #else FILEFLAGS 0x0L #endif FILEOS VOS_NT_WINDOWS32 FILETYPE VFT_DLL FILESUBTYPE 0x0L BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904B0" BEGIN VALUE "CompanyName", "你的公司名称\0" VALUE "FileDescription", "CppRestSDK 动态链接库\0" VALUE "FileVersion", "2.10.0.0\0" VALUE "InternalName", "cpprest_2_10.dll\0" VALUE "LegalCopyright", "你的版权信息\0" VALUE "OriginalFilename", "cpprest_2_10.dll\0" VALUE "ProductName", "CppRestSDK\0" VALUE "ProductVersion", "2.10.0.0\0" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x409, 1200 END END
步骤3:修改CMake配置引入资源文件
找到cpprest核心库的CMakeLists.txt(通常在cpprestsdk/Release/cpprest/CMakeLists.txt),在定义cpprest目标的部分添加资源文件:
- 若用
add_library直接罗列源文件,将version.rc路径追加到列表末尾; - 若用
target_sources,添加以下代码(路径按需调整):
target_sources(cpprest PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../version.rc)
步骤4:重新编译cpprestsdk
回到命令行执行安装命令触发重新编译:
vcpkg.exe install cpprestsdk --triplet x64-windows
编译完成后,生成的cpprest_2_10.dll会包含你定义的VERSIONINFO资源。
内容的提问来源于stack exchange,提问作者György Reisch
相关产品推荐
相关产品推荐

