@function 处的 Mingw32 汇编程序错误
Mingw32 Assembler error at @function
我正在使用 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 中编译得很好)。
好的,所以解决方案非常简单:只需注释 .type 指令即可。 PECOFF 不需要那个。现在我可以编译 运行 就好了。
我正在使用 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 中编译得很好)。
好的,所以解决方案非常简单:只需注释 .type 指令即可。 PECOFF 不需要那个。现在我可以编译 运行 就好了。