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

我希望将所有内容都安装在 /opt/local/ 中,因为我不想接触系统 (/usr/)。gFortran 不适用于 macport。您可以使用 gcc46 作为变体安装它。但是如果我使用 gcc46 而不是默认编译器,那么之前的代码需要编译。我该如何解决?

亲切的问候

4

1 回答 1

2

请参阅 CMake 常见问题解答,了解如何使用不同的编译器:

要将 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”生成器。我不知道有谁通过 Xcode 和 CMake 一起使用 fortran。

于 2011-02-23T02:38:14.337 回答