如何通过cmake将版本详细信息添加到.exe或.dll

时间:2013-05-30 08:59:29

标签: c++ visual-studio-2008 g++ cmake

我想在exe时向compile添加一些版本信息。

在vs2008上,我可以通过add->resource->version步骤完成。

但是我怎么能通过cmake来做呢?

1 个答案:

答案 0 :(得分:3)

使用MinGW(适用于Windows的GCC)时,我们使用类似的风:

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

请参阅其文档here (MinGW)

使用Visual Studio,您可以使用资源编译器。请参阅其文档here (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