在 gcc 上附加带有资源的二进制文件
Attach binary file with resource on gcc
好吧,我有一个 C++ 项目,我在其中使用 GCC + MinGW 进行编译,效果非常好。
但是我需要将一个二进制文件附加到我的输出文件,并且我正在尝试针对每个资源执行此操作,但是当我尝试编译时,它会出现以下错误:
C:/Program Files (x86)/CodeBlocks/…/ld.exe: i386:x86-64 architecture of input file ‘…\resources.res’ is incompatible with i386 output
这里是文件代码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 architecture of input file '..\Files\User\resources.res'
),但您正在以 32 位模式编译可执行文件(“-m32
”选项).然后它不能 link 因为不匹配。
假设dll是64位的,尝试将编译器切换到64位(使用“-m64”标志,不确定如何在CodeBlocks中切换它)。否则,您必须将 windres 切换为 32 位(可能通过“--target=pe-i386”,参见此处:TDM-GCC w64 script to change windres for 32bit?)。
好吧,我有一个 C++ 项目,我在其中使用 GCC + MinGW 进行编译,效果非常好。 但是我需要将一个二进制文件附加到我的输出文件,并且我正在尝试针对每个资源执行此操作,但是当我尝试编译时,它会出现以下错误:
C:/Program Files (x86)/CodeBlocks/…/ld.exe: i386:x86-64 architecture of input file ‘…\resources.res’ is incompatible with i386 output
这里是文件代码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 architecture of input file '..\Files\User\resources.res'
),但您正在以 32 位模式编译可执行文件(“-m32
”选项).然后它不能 link 因为不匹配。
假设dll是64位的,尝试将编译器切换到64位(使用“-m64”标志,不确定如何在CodeBlocks中切换它)。否则,您必须将 windres 切换为 32 位(可能通过“--target=pe-i386”,参见此处:TDM-GCC w64 script to change windres for 32bit?)。