在gcc上附加带有资源的二进制文件

Attach binary file with resource on gcc

本文关键字:资源 二进制文件 gcc      更新时间:2023-10-16

好吧,我有一个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 '..FilesUserresources.res'(构建的,但您正在以32位模式编译可执行文件("-m32"选项(。然后,由于不匹配,它无法将两者连接在一起。

假设dll是64位的,请尝试将编译器切换到64位(使用"-m64"标志,不确定如何在CodeBlocks中准确切换(。否则,您将不得不将windres切换到32位(可能通过"--target=pe-i386",请参阅此处:TDM-GCC w64脚本将windres更改为32位?(。