如何使用CMake生成Windows DLL版本控制信息?
这非常类似于:如何使用CMake生成Windows DLL版本控制信息?,windows,dll,cmake,Windows,Dll,Cmake,这非常类似于: 但我想我可能会再问一次,因为从那时起事情可能已经改变了 使用以下CMakeLists.txt文件: 我附加以下代码块: add_library(foo SHARED gdcmVersion.cxx) set_target_properties(foo PROPERTIES VERSION "1.2.3" SOVERSION "4.5") 我本以为这会填充相应的版本信息,但我不这么认为: 所以我的问题是:为了在详细信息框中填充正确的版本/版本,上面两行cmake代码
add_library(foo SHARED gdcmVersion.cxx)
set_target_properties(foo PROPERTIES VERSION "1.2.3" SOVERSION "4.5")
我本以为这会填充相应的版本信息,但我不这么认为:
所以我的问题是:为了在详细信息框中填充正确的版本/版本,上面两行cmake代码实际上缺少了什么
我的设置:
更新:我在这里上传了一个案例:
版本。rc
为:
$ cat version.rc
// version.rc.in
#define VER_FILEVERSION 3,5,49,0
#define VER_FILEVERSION_STR "3.5.49.0\0"
#define VER_PRODUCTVERSION 3,5,49,0
#define VER_PRODUCTVERSION_STR "3.5.49\0"
//
经过多次尝试和错误,我能够正确地得到我想要的: 因此,重要的部分是:
1 VERSIONINFO
FILEVERSION VER_FILEVERSION
PRODUCTVERSION VER_PRODUCTVERSION
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904E4"
BEGIN
VALUE "FileVersion", VER_FILEVERSION_STR
VALUE "ProductVersion", VER_PRODUCTVERSION_STR
END
END
/* For some reason the ProductVersion would not appear unless I add */
/* the following section: VarFileInfo */
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x0409, 1252
END
END
参考资料: