My ultimate goal is to set the version(that shows in properties->details) of an executable being compiled with MinGW gcc-g++. But for now I would like to compile a resource file with windres to be able to link it later manually. But I got following error, when I use this command: windres resource.rc -o resource.res
:
windres: resource.rc:2: syntax error
The process tried to write to a nonexistent pipe.
...
The process tried to write to a nonexistent pipe.
resource.rc:4:0: fatal error: when writing output to : Invalid argument
VS_VERSION_INFO VERSIONINFO
compilation terminated.
windres: preprocessing failed.
My resource.rc looks like this:
#include "winver.h"
#include "../include/resource.h"
VS_VERSION_INFO VERSIONINFO
FILEVERSION 0,0,0,2
PRODUCTVERSION 0,0,0,2
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x1L
FILESUBTYPE 0x0L
{
BLOCK "StringFileInfo"
{
BLOCK "040904b0"
{
VALUE "Comments", "comment\0"
VALUE "CompanyName", "comment\0"
VALUE "FileDescription", "base file\0"
VALUE "FileVersion", "0.0.0.2 TP\0"
VALUE "InternalName", "testTP\0"
VALUE "LegalCopyright", "none\0"
VALUE "OriginalFilename", "test.exe\0"
VALUE "ProductName", "test\0"
VALUE "ProductVersion", "0.0.0.2 TP\0"
}
}
BLOCK "VarFileInfo"
{
VALUE "Translation", 0x409, 1200
}
}
and my resource.h is just empty, maybe that is the problem? It amazes me how complicated it is to simply set the version number in the property tab in an exe. I've been reading a lot of other SO answers but none of them worked for me. For e.g. this one seems too ambiguous on how to exactly proceed after having this resource.rc file.