2011-02-14 107 views
2

希望有人能幫我。我需要編譯一些代碼。我使用macports安裝了我需要的所有內容,位於/ opt/local /中。它的工作方式應該如何,除了gFortran。我得到這個錯誤:如何在macports下安裝gfortran並將其與cmake一起使用?

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 

我想安裝在所有的/ opt /本地/,因爲我不想碰系統(在/ usr /)。 gFortran不適用於macports。你可以使用gcc46作爲變體來安裝它。但是如果我使用gcc46代替默認編譯器,那麼代碼在編譯之前。 我該如何解決這個問題?

親切的問候

+0

請問您是否可以複製粘貼您的`CMakeLists.txt`。 – tibur 2011-02-15 12:35:05

回答

2

見CMake的常見問題解答關於如何使用不同的編譯器:

要使用gfortran從MacPorts的作爲Fortran編譯器,你應該:

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

...在呼叫之前g CMake。然後,在設置了這樣的環境變量之後調用CMake之後,它會將編譯器路徑緩存在CMakeCache.txt文件中,所以對於後續運行,您不需要設置環境變量。

對於混合語言(C,C++,Fortran)項目,重要的是編譯器必須相互良好地發揮作用。

此建議僅適用於「Unix Makefiles」生成器。我不知道任何通過Xcode與Fortran結合使用fortran的人。