C++ 在gcc上附加具有资源的二进制文件
嗯,我有一个C++项目,在这个项目中,我使用GCC+MinGW来编译它,它可以完美地工作。 但是我需要在输出文件中附加一个二进制文件,并且我试图对每个资源执行此操作,但是当我尝试编译时,它会给出以下错误: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:/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用作资源编译器以下是构建日志: