Resources Windres语法错误

Resources Windres语法错误,resources,mingw,Resources,Mingw,我在MinGW环境中工作(2011年12月12日随安装程序下载)。我正在尝试使用Windres编译资源(.rc)文件。我使用的特定命令是 Windres -O coff About1.rc -o About1.res Windres生成至少100行警告消息,内容为:“警告:忽略空字符”。在此之后,Windres发出:“Abouty1.rc:1:语法错误” 事实上,About1.rc文件中没有空字符。此外,文件的第一行是include语句:#include“dlgresource.h”。我反复使

我在MinGW环境中工作(2011年12月12日随安装程序下载)。我正在尝试使用Windres编译资源(.rc)文件。我使用的特定命令是

Windres -O coff About1.rc -o About1.res
Windres生成至少100行警告消息,内容为:“警告:忽略空字符”。在此之后,Windres发出:“Abouty1.rc:1:语法错误”

事实上,About1.rc文件中没有空字符。此外,文件的第一行是include语句:#include“dlgresource.h”。我反复使用并删除了这条语句,结果发现不管我放在那里什么,我都会收到同样的消息和语法错误通知

为了让事情更加混乱,这个.rc文件使用MSFT的rc.exe编译时没有任何问题。生成的.res文件与程序.obj文件平滑链接,运行良好

我不知道发生了什么事。有什么想法吗

谢谢,
Mark Allyn

您的.rc文件可能编码为UTF-16

这是微软[rc.exe]为了能够处理国际字符而通常需要的,但是GNU[windres.exe]只能处理ANSI编码

一种解决方法是当场将文件转换为ANSI(可能会丢失例如俄语或希腊语字符):

>chcp 1252 活动代码页:1252 >键入my.rc | windres--output format=COFF-o my.res > _
您的.rc文件可能编码为UTF-16

这是微软[rc.exe]为了能够处理国际字符而通常需要的,但是GNU[windres.exe]只能处理ANSI编码

一种解决方法是当场将文件转换为ANSI(可能会丢失例如俄语或希腊语字符):

>chcp 1252 活动代码页:1252 >键入my.rc | windres--output format=COFF-o my.res > _
您可能使用VS或类似工具来生成文件。字符编码的某些部分无法看到,从而导致空字符等


生成具有相同内容的新.res文件,不要复制/粘贴内容,请自己键入。

您可能使用VS或类似工具生成该文件。字符编码的某些部分无法看到,从而导致空字符等

生成具有相同内容的新.res文件,不要复制/粘贴内容,请自己键入。

尝试:

    windres About1.rc -o About1.o
然后只需使用生成的.o文件,而不是原始的.res文件。

尝试:

    windres About1.rc -o About1.o

然后只需使用生成的.o文件,而不是原来打算使用的.res文件。

我今天遇到的问题与您相同。我知道你的问题已经过去了很多时间,但我写这篇文章是希望它能对别人有用

首先,我获得了一个对象文件
.o
,该文件使用Cygwin编译,写入:

windres -o resource.o resource.rc
通过这样做,您不需要使用
.res
文件,而是使用
.o
文件,然后您可以在编译程序时使用GNU资源将此对象与所有其他对象链接:

g++ Header_files CPP_files flags ... -o program.exe recource.o -lm

例如。

我今天遇到的麻烦和你一样。我知道你的问题已经过去了很多时间,但我写这篇文章是希望它能对别人有用

首先,我获得了一个对象文件
.o
,该文件使用Cygwin编译,写入:

windres -o resource.o resource.rc
通过这样做,您不需要使用
.res
文件,而是使用
.o
文件,然后您可以在编译程序时使用GNU资源将此对象与所有其他对象链接:

g++ Header_files CPP_files flags ... -o program.exe recource.o -lm
比如说