2

誰かが私を助けてくれることを願っています。いくつかのコードをコンパイルする必要があります。/opt/local/ に、macports で必要なものをすべてインストールしました。そして、gFortran を除いて、本来あるべき方法で機能しています。次のエラーが表示されます。

ld: library not found for -lgfortran
collect2: ld returned 1 exit status
make[2]: *** [vigranumpy/private/graph/tws/svs.dylib] Error 1
make[1]: *** [vigranumpy/private/graph/tws/CMakeFiles/svs.dir/all] Error 2
make: *** [all] Error 2

システム (/usr/) に触れたくないので、すべてを /opt/local/ にインストールしたいと考えています。gFortran は macports では使用できません。バリアントとして gcc46 でインストールできます。しかし、デフォルトのコンパイラの代わりに gcc46 を使用すると、コンパイル前のコードが必要になります。どうすれば修正できますか?

敬具

4

1 に答える 1

2

別のコンパイラの使用方法については、CMake FAQ を参照してください。

macports の gfortran を fortran コンパイラとして使用するには、次のことを行う必要があります。

export FC=/opt/local/bin/gfortran
export CC=/opt/local/bin/gcc
export CXX=/opt/local/bin/g++

...CMake を呼び出す前に。次に、このような環境変数を設定して CMake を呼び出した後、コンパイラ パスが CMakeCache.txt ファイルにキャッシュされるため、以降の実行では、環境変数を設定する必要がなくなります。

混合言語 (C、C++、Fortran) プロジェクトでは、すべてのコンパイラが互いにうまく連携することが重要です。

このアドバイスは、"Unix Makefiles" ジェネレーターでのみ機能します。CMake と組み合わせて Xcode 経由で fortran を使用している人を私は知りません。

于 2011-02-23T02:38:14.337 に答える