私はmingw32を使ってプロジェクトをWindowsに移植していましたが、プロジェクトはlibfecというライブラリに依存しています。 Libfecには内部の動作を最適化するためのアセンブリコードがたくさんあります。 Linux(GCC 5.4)では、ライブラリはうまくコンパイルされます。今日、私は(だけでなくGCC 5.4で)MINGW32を使用して、Windows上でコンパイルしようとした私は、このエラーを得た:Mingw32 @functionでのアセンブラエラー
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ディレクティブの形式は、ELFオブジェクト形式に固有です。 WindowのPECOFFオブジェクト形式と同等のものがあれば、それを把握する必要があります。 –
それは意味をなさないロスリッジ、私は同等を見るためにPECOFFオブジェクト形式で見ていきます。 –