我使用mingw32将一个项目移植到Windows,该项目依赖于一个名为libfec的库。Libfec有大量的装配代码来优化内部工作。在Linux (使用GCC 5.4)中,库编译得很好。今天,我尝试使用mingw32 (还有gcc 5.4)在windows上编译它,我得到了以下错误:
as -o mmxbfly27.o mmxbfly27.s
mmxbfly27.s: Assembler messages:
mmxbfly27.s:10: Warning: .type pseudo-op used outside of .def/.endef ignored.
mmxbfly27.s:10: Error: junk at end of line, first unrecognized character is `u'
make: *** [mmxbfly27.o] Error 1关于.type的警告也发生在Linux中,但是错误没有发生。我检查了binutils,它们实际上是不同的(在linux上是2.26,在mingw是2.25),但是libfec的代码有点老(几年),即使使用binutils 2.0也可以编译。
我不知道为什么不能在windows上编译这个。完整的代码如下:
https://github.com/quiet/libfec/blob/master/mmxbfly27.s
我问了一位有编译经验的朋友,他在代码中找不到问题(而且在linux中编译也很好)。
发布于 2016-11-06 18:15:21
好的,解决方案非常简单:只需注释.type指令即可。PECOFF不需要这个。现在我可以编译和运行了。
https://stackoverflow.com/questions/40445227
复制相似问题