首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Objcopy获取对象文件64位二进制文件

Objcopy获取对象文件64位二进制文件
EN

Stack Overflow用户
提问于 2019-06-15 22:15:43
回答 1查看 897关注 0票数 0

我在windows10上使用objcopy将我的dll嵌入到exe中并加载它。它运行良好的32位编译32位二进制dll文件,因为我没有得到错误加载我的dll。

代码语言:javascript
复制
objcopy --prefix-symbol=_ --input-target binary --output-target pe-i386 --binary-architecture i386 somedll.dll somedll.o

如何设置objcopy参数以获取64位二进制对象文件?如果objcopy不能做到这一点,有没有其他选择呢?当我将我的dll编译为64位时,它不会加载,如果我试图用64位的目标文件编译可执行文件,它会返回错误,指出我的目标文件与64位编译不兼容。

所以比如说在gcc编译的时候,我要做的是

代码语言:javascript
复制
gcc -m32 Myfile.c somedll.o -o output.exe

如果我删除了-m32,它不能编译,因为有些edll.o被设置为32位,即使它是64位的,这就是为什么我的LoadLibrary()函数不能加载它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-16 03:33:10

我能够用这个论点得到最好的结果。

代码语言:javascript
复制
objcopy --prefix-symbol=_ --input-target binary --output-target pe-x86-64 --binary-architecture i386:x86-64 some64.dll some64.o

pe-i386转换为pe-x86-64,将i386转换为i386:x86-64,使我能够将64位动态链接库嵌入到可执行文件中,而不会遇到任何二进制兼容性问题。它在windows上运行得很好。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56611153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档