在 Windows 中链接 *.o 文件
当我在 Windows 上使用 MinGW 将 .o 文件与 LD 链接器链接时,它会给出错误“file.o:文件无法识别:文件格式无法识别”。 我尝试用 cygwin instread 来做到这一点,但同样的事情发生了。 有什么建议么?
When I'm linking .o files with the LD linker using MinGW on Windows, it gives me the error "file.o: File not recognized: file format not recognized". I've tried to do it with cygwin instread, but the same thing happens. Any suggestions?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
很可能您有一个链接器无法理解格式的目标文件。 有很多不同的格式:COFF、OMF、ELF(这样的例子不胜枚举……)
幸运的是,有一个免费工具可以让您从一种格式转换为另一种格式。 它还可以让您了解对象格式的内部结构,并告诉您对象文件以哪种格式进行编码。
程序
那个小命令行实用 解决了我遇到的所有对象格式问题。 它甚至可以反汇编库、目标文件、DLL 和可执行文件。
Most likely you have a object file in a format that the linker does not understand. There are lots of different formats out there: COFF, OMF, ELF (the list goes on..)
Fortunately there is a free tool that lets you convert from one format to another. It also lets you take a look into the internals of the object format and tells you in which format a object file is encoded.
http://www.agner.org/optimize/#objconv
That little command line utility solved all the object format problems I ever had. It can even disassemble libs, object files, DLLs and executables.