1

2011 mac book pro 経由の Mac osx 10.7.4 で、次の問題に関連する全面的なエラーが一貫して発生しています。

これらのエラーは、ほとんどの場合、同様の make ファイルを使用しながら、さまざまな Linux マシンでエラーなしでサンプル コードをコンパイルおよび実行する数学関連の開発ライブラリからのものです。

私が得るエラーは、通常、次の行にあるものです

ld: symbol(s) not found for architecture x86_64

これはさまざまなコンパイラでも発生し、ライブラリをどのようにコンパイルしても、リンク、clang、gcc のさまざまなバージョン、さらには haskell の ghc

私にエラーを与えるいくつかのライブラリは

  • PETSC(ソースからコンパイルしたもので、make testでコンパイルする例はありません)
  • GSL (macports から) で同じエラーが発生する
  • FFTW...そしてリストは続く

原因は、途中で何か (おそらくコンパイラ) が macports を介して不適切にコンパイルされたことだと思います。

たとえばgcc -v、それがコンパイルされたと述べていますTarget: i686-apple-darwin11

--build=i686-apple-darwin11 --enable-llvm=/private/var/tmp/llvmgcc42/llvmgcc42-2336.11~28/dst-llvmCore/Developer/usr/local --program-prefix=i686-apple-darwin11- --host=x86_64-apple-darwin11 --target=i686-apple-darwin11

他のすべてのコンパイラー、 clang 、 g++-mp-4.7 exc は Target: x86_64-apple-darwin11 と言います

この問題の解決策はありますか?

64ビットを強制するすべてを再コンパイルする方法はありますか? それは上記の問題を解決しますか?

4

1 に答える 1

1

Mac OS X には独自のビルド ツールチェーンがあるため、これはおそらくパスの問題です。

小切手

which gcc

そしてパスを、Mac ポート (おそらく /opt/bin にある) から来ていることがわかっている任意のライブラリと比較します。

解決策として、$PATH の先頭に /opt/bin パスを配置するとうまくいくはずです。

于 2012-09-13T17:56:46.380 に答える