首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windres语法错误

Windres语法错误
EN

Stack Overflow用户
提问于 2011-12-14 07:43:29
回答 3查看 3.4K关注 0票数 0

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

代码语言:javascript
复制
Windres -O coff About1.rc -o About1.res

Windres生成至少100行警告消息:" warning : null characters ignored“。接着Windres会发出:“Abouty1.rc:1:语法错误”。

事实上,About1.rc文件中没有空字符。此外,文件的第一行是一个include语句:#include "dlgresource.h“。我试了一下,去掉了这条语句,结果发现我把什么放在那里并不重要,我得到了同样的消息和语法错误通知。

更令人困惑的是,使用微软的rc.exe编译这个相同的.rc文件没有任何问题。生成的.res文件与程序的.obj文件顺利链接,并且可以完美地运行。

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

谢谢,Mark Allyn

EN

回答 3

Stack Overflow用户

发布于 2012-07-29 19:22:37

您可能使用了VS或类似的工具来生成文件。您看不到字符编码的某些部分会导致空字符等。

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

票数 1
EN

Stack Overflow用户

发布于 2014-03-21 01:15:31

尝试:

代码语言:javascript
复制
    windres About1.rc -o About1.o

然后只使用生成的.o文件,而不是最初想要的.res文件。

票数 0
EN

Stack Overflow用户

发布于 2016-04-16 22:42:39

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

首先,我获得了一个使用Cygwin编译的目标文件.o,写道:

代码语言:javascript
复制
windres -o resource.o resource.rc

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

代码语言:javascript
复制
g++ Header_files CPP_files flags ... -o program.exe recource.o -lm

例如。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8497838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档