繁体   English   中英

G ++包含来自cmd的.rc文件

[英]G++ include .rc files from cmd

我已经使用资源(.rc文件)制作了一个简单的WIN32项目。

当我使用code :: blocks进行编译时,将显示对话框,但是当使用cmd中的g ++进行编译时,则不会。

尝试将.rc作为g ++的参数包括在内,结果如下:
main.rc: file not recognized: File format not recognized collect2.exe: error: ld returned 1 exit status

如何在cmd中将.rc文件包含到g ++中?

编辑:我尝试用风阻做:
windres main.rc -o res.o
g++ -c win_main.cpp resource.h -o source.o
g++ -o Executable res.o source.o

我收到相同的错误,但无法识别main.o而不是main.rc

.rc文件不提供给gcc,它们必须由windres处理(MS的rc.exe的gcc等效),您可以使用windres从.rc创建.o文件,然后将.o提供给gcc (或ld)作为您最终链接阶段的一部分。

windres my_file.rc my_file.o
gcc -o my_final <other parameters> my_file.o

有其他潜在的论据,请查看手册页以获取详细信息。

MS资源工具和GNU工具之间的主要区别在于,MS RC以特殊的二进制资源格式生成“ .res”文件,可以将其直接传递给MS链接,而GNU链接器LD仅支持“ .o”(与'.obj')格式。 因此,作为@SoronelHaetir的答案,您需要使用windres: windres main.rc -o res.o

我还要指出的是,您不应该“编译” .h文件。 这样做将创建不用于创建可执行文件的预编译头文件,然后导致xxx.o: file not recognized: File format not recognized 由于#include指令,Builder能够自行找到这些头文件。 这里看到类似的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM