c - @function 处的 Mingw32 汇编器错误

标签 c linux gcc assembly mingw32

我正在使用 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

我问了一位有编译器经验的 friend ,他在代码中找不到问题(并且在linux中编译得很好)。

最佳答案

好吧,解决方案非常简单:只需注释 .type 指令即可。 PECOFF 不需要这个。现在我可以正常编译和运行了。

关于c - @function 处的 Mingw32 汇编器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40445227/

相关文章:

linux - 在断电时关闭和打开服务器和虚拟机的正确方法是什么?

mysql - 在 Linux Web 服务器上公开 Access 数据库

clang 和 gcc 中的 C++14 可变参数模板参数推断

c - undefined reference -- 局部符号

c - 使用 sizeof(arrays) 的宏没有给出预期的输出

c - 尝试从数组中打印出网格,但实际上没有显示任何内容

c - C 中的共享内存 - 共享字符串

c++ - 如何在一台 Ubuntu 机器上安装 2 个 Opencv 版本以及如何一次激活一个版本进行编译?

c++ - gcc:混合 -Wformat 和 register_printf_specifier

c - 如何按C中的给定成员对结构数组进行排序