7

への静的参照のみを持つライブラリを構築しようとしていますlibgfortran(できればlibgcc)。

ただし、リンカーフラグを使用すると

-static -lgfortran -static-libgfortran -static-libgcc

OS XI で取得

ld: library not found for -lcrt0.o
collect2: error: ld returned 1 exit status

そして、私が使用しようとすると

-shared -lgfortran -static-libgfortran

私は得る

Undefined symbols for architecture x86_64:
  "_quadmath_snprintf", referenced from:
      _write_float in libgfortran.a(write.o)
  "_strtoflt128", referenced from:
      __gfortrani_convert_real in libgfortran.a(read.o)
      __gfortrani_convert_infnan in libgfortran.a(read.o)

を使用すると、すべてが正常にコンパイルされます (ただし、libgfortran と libgcc への動的リンクがあります) -dynamiclib -lgfortran

gcc はOS X 上で静的にビルドされていないようです。

エンドユーザーが gfortran や gcc をインストールする必要がないようにライブラリを構築するにはどうすればよいですか?

私は gcc の macports バージョンを使用していますが、gfortran/gcc の別のディストリビューターを使用する準備ができています。

4

1 に答える 1

10
-dynamiclib -lgfortran -static-libgfortran \
  /opt/local/lib/gcc47/libquadmath.a -static-libgcc

トリックを行うようです!

奇妙なことに、にフルパスを追加する必要があることがわかりました。これは、正直に言うと/libquadmath.aのバグのように感じます。gccgfortran

于 2013-07-28T18:50:46.390 に答える