1

我正在使用 MinGW 作为编译器创建一个 exe。我想要我的 exe 的文件详细信息。此处提出了类似的问题,但它仅适用于 MSVC。我什至尝试在 .rc 文件中添加以下代码。顺便说一句,同一个 .rc 文件有一些用于获取图标文件的代码,它工作正常!

VS_VERSION_INFO VERSIONINFO
 FILEVERSION 1,0,0,1
 PRODUCTVERSION 1,0,0,1
 FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
 FILEFLAGS 0x1L
#else
 FILEFLAGS 0x0L
#endif
 FILEOS 0x40004L
 FILETYPE 0x2L
 FILESUBTYPE 0x0L
BEGIN
    BLOCK "StringFileInfo"
    BEGIN
        BLOCK "000004b0"
        BEGIN
            VALUE "Comments", "\0"
            VALUE "CompanyName", "\0"
            VALUE "FileDescription", "MyApp Description\0"
            VALUE "FileVersion", "1, 0, 0, 1\0"
            VALUE "InternalName", "Test\0"
            VALUE "LegalCopyright", "Copyright © 2013\0"
            VALUE "LegalTrademarks", "\0"
            VALUE "OriginalFilename", "OriginalFilename\0"
            VALUE "PrivateBuild", "\0"
            VALUE "ProductName", "MyApp\0"
            VALUE "ProductVersion", "1, 0, 0, 1\0"
            VALUE "SpecialBuild", "\0"
        END
    END
    BLOCK "VarFileInfo"
    BEGIN
        VALUE "Translation", 0x0, 1200
    END
END

我仍然没有在构建的 exe 中获得任何详细信息......

4

1 回答 1

3

你是如何构建资源文件的?请记住(请参阅MS 资源编译器):

使用 MS 资源工具和 GNU 工具的主要区别在于 MS rc 生成一个特殊的二进制资源格式的“.res”文件,可以直接传递给 MS 链接,而 GNU 链接器 ld 只支持“ .o”(与“.obj”相同)格式(尽管 windres 可以两种格式输出)。

例子:

windres -o resfile.o demo.rc
gcc -o demo demo.o resfile.o -mwindows

这是一个将版本信息和注释添加到 DLL的示例。

于 2013-11-06T14:11:53.540 回答