我试图将名为window.ui
的文件嵌入到我的C可执行文件中,目的是稍后从代码中访问内容:
objcopy --input binary \
--output elf32-i386 \
--binary-architecture i386 ../src/window.ui ../window.ui.o
gcc `pkg-config --cflags gtk+-3.0` \
../src/*.c \
../*.o \
`pkg-config --libs gtk+-3.0` \
-o ../a.out
编译时,GCC失败,并显示以下错误:
/usr/bin/x86_64-linux-gnu-ld: i386 architecture of input file `../window.ui.o' is incompatible with i386:x86-64 output
collect2: error: ld returned 1 exit status
有什么方法可以强制GCC仍然包含该文件?
我也尝试将objcopy
与--output elf64-x86-64
一起使用,这样可以正确编译但是在阅读时内容会乱码。
启发我的原始guide
答案 0 :(得分:0)
使用gnu-ld来“解决”:
ld -r -b binary ../src/window.ui -o ../window.ui.o
无法弄清楚为什么objcopy
不能正常工作。