Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在gcc上附加具有资源的二进制文件_C++_Gcc_Resources_Ld - Fatal编程技术网

C++ 在gcc上附加具有资源的二进制文件

C++ 在gcc上附加具有资源的二进制文件,c++,gcc,resources,ld,C++,Gcc,Resources,Ld,嗯,我有一个C++项目,在这个项目中,我使用GCC+MinGW来编译它,它可以完美地工作。 但是我需要在输出文件中附加一个二进制文件,并且我试图对每个资源执行此操作,但是当我尝试编译时,它会给出以下错误: C:/Program Files(x86)/CodeBlocks/../ld.exe:i386:x86-64输入文件“…\resources.res”的体系结构与i386输出不兼容 这是code resource.rc文件 #include "resource.h" IDR_FILE BIN

嗯,我有一个C++项目,在这个项目中,我使用GCC+MinGW来编译它,它可以完美地工作。 但是我需要在输出文件中附加一个二进制文件,并且我试图对每个资源执行此操作,但是当我尝试编译时,它会给出以下错误:

C:/Program Files(x86)/CodeBlocks/../ld.exe:i386:x86-64输入文件“…\resources.res”的体系结构与i386输出不兼容

这是code resource.rc文件

#include "resource.h"

IDR_FILE BIN DISCARDABLE "../bin/File.dll"
以下是resource.h文件的代码

#define IDR_FILE 541

我在VC++2015中尝试了同样的方法,效果非常好。

根据构建日志,资源似乎是以64位模式构建的(
ld.exe:i386:x86-64输入文件“..\Files\User\resources.res”的体系结构)
),但您正在以32位(即“
-m32
”选项)编译可执行文件。然后,由于不匹配,它无法将两者链接在一起


假设dll是64位的,尝试将编译器切换到64位(使用“-m64”标志,不确定如何在代码块中精确切换)。否则,您必须将windres切换到32位(可能通过“-target=pe-i386”,请参见此处:)。

您如何编译resource.rc for MinGW?我将代码块用作IDE,windres.exe用作资源编译器以下是构建日志: