如何通过cmake为.exe或.dll添加版本信息

5

我希望在编译exe时添加一些版本信息。

在vs2008中,可以通过添加->资源->版本进行操作。

但是如何通过cmake实现呢?


你尝试将资源文件添加到CMake源列表中,以供你的exe或dll使用了吗? - rubenvb
1个回答

4

在使用MinGW(Windows下的GCC)时,我们可以这样使用windres:

windres foo.rc foores.o
gcc -o foo.exe foo.o foores.o

请参考其文档这里(MinGW)

使用Visual Studio,您可以使用资源编译器。请参阅其文档这里(Microsoft)。 资源文件(.rc)是存储版本/作者信息的地方。请参考上述链接到的Microsoft文档中.rc文件的格式。

示例.rc文件如下:

1 VERSIONINFO
 FILEVERSION 1,0,0,0
 PRODUCTVERSION 1,0,0,0
 FILEFLAGSMASK 0x17L
#ifdef _DEBUG
 FILEFLAGS 0x1L
#else
 FILEFLAGS 0x0L
#endif
 FILEOS 0x4L
 FILETYPE 0x1L
 FILESUBTYPE 0x0L
BEGIN
    BLOCK "StringFileInfo"
    BEGIN
        BLOCK "080904b0"
        BEGIN
            VALUE "Comments", "Addition Library"
            VALUE "CompanyName", "Lithiumheads Inc."
            VALUE "FileDescription", "A library to perform addition."
            VALUE "FileVersion", "1, 0, 0, 0"
            VALUE "InternalName", "Addition"
            VALUE "LegalCopyright", "2011 Anurag Chugh"
            VALUE "OriginalFilename", "Addition.dll"
            VALUE "ProductName", "Addition Library"
            VALUE "ProductVersion", "1, 0, 0, 0"
        END
    END
    BLOCK "VarFileInfo"
    BEGIN
        VALUE "Translation", 0x809, 1200
    END
END

2
你可以从CMake中调用资源编译器。 - lithiumhead

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接