Как установить gfortran под macports и использовать его с cmake?

надеюсь, что кто-то может мне помочь. Мне нужно скомпилировать некоторый код. Я установил все, что мне нужно, с помощью macports в /opt/local/. И работает как надо, кроме 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

Я хочу, чтобы все было установлено в /opt/local/, потому что я не хочу трогать систему (/usr/). gFortran недоступен для macports. Вы можете установить его с gcc46 как вариант. Но если я использую gcc46 вместо компиляторов по умолчанию, то код перед компиляцией. Как я могу это исправить?

С уважением


person Oli    schedule 14.02.2011    source источник
comment
Не могли бы вы скопировать и вставить свой CMakeLists.txt, пожалуйста.   -  person tibur    schedule 15.02.2011


Ответы (1)


См. FAQ по CMake о том, как использовать другой компилятор:

Чтобы использовать gfortran из macports в качестве компилятора 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". Я не знаю никого, кто использует fortran через Xcode в сочетании с CMake.

person DLRdave    schedule 23.02.2011