在 OSx 10.9 Mavericks 上安装 Cantera 2.1

Posted

技术标签:

【中文标题】在 OSx 10.9 Mavericks 上安装 Cantera 2.1【英文标题】:Installing Cantera 2.1 on OSx 10.9 Mavericks 【发布时间】:2014-02-15 13:09:52 【问题描述】:

要在我的 macbook pro 上安装 cantera 2.1,我遵循 Bok Jik Lee 最近在他的博客上发布的程序: Installing Cantera 2.1 on OSx 10.9 Mavericks

到目前为止一切正常,但是当我来到第 9 点时出现错误:“安装 Cantera”

将当前位置更改为我输入的 canters-2.1 文件夹后

scons build prefix='/usr/local/opt/cantera' python_compiler='clang++ -stdlib=libc++ -mmacosx-version-min=10.7' sundials_include='/usr/local/opt/sundials/2.5.0/include' sundials_libdir='/usr/local/opt/sundials/2.5.0/lib'

这些命令一直有效,直到出现以下错误:

ld: library not found for -lgfortran

clang: error: linker command failed with exit code 1 (use -v to see invocation)

scons: *** [build/lib/libcantera_shared.dylib] Error 1

scons: building terminated because of errors.

此错误之前的最后一行如下:

build/src/clib/ctxml.os -Lbuild/lib -L/usr/local/opt/sundials/2.5.0/lib -L/usr/local/opt/sundials/2.5.0/lib -lgfortran -lsundials_cvodes -lsundials_ida -lsundials_nvecserial -framework Accelerate

所以 scons 终止了...我忘记安装什么了吗?我能做什么?

干杯,

马蒂亚斯

P.s.:我是一个相当新的 mac 用户 - 所以这是我使用终端和所有这些命令的第一次体验......

【问题讨论】:

【参考方案1】:

这不是SCons 的问题,而是编译器找不到gfortran 库。您提供的链接中的第 2 步显示了如何安装 gfortran。您是否成功完成了这一步?

如果是这样,它安装在哪里?可能是 SCons 构建脚本没有正确指定 gfortran 库的路径。库路径通过-L 编译器标志传递给编译器。因此,如果您知道库的安装位置,请确保在库路径编译器标志中正确指定了它的路径。如果库路径不正确或丢失,您可以自己修改 SCons 脚本,或者考虑在 Cantera 支持站点上编写某种错误报告。

要自己修改SCons 构建脚本,您需要修改LIBPATH 构建变量,如here 所示。

【讨论】:

嗨布雷迪,感谢您的快速回答...关于您的问题:我确实通过coudert.name/software/gfortran-4.8.2-Mavericks.dmg 安装了 gfortran 但是,它似乎位于错误的位置。我联系了 Bok Jik Lee - 该指令的作者 - 他说我应该搜索“libgfortran.a”的正确位置,然后使用如下链接:“-s /some/where/your/libgfortran.a /usr /local/lib/libgfortran.a" 你认为这是个好主意吗? @user3313375,好的,您可以等待他们修复它,或者更新 SCons 构建脚本以指向我的回答中提到的新位置。

以上是关于在 OSx 10.9 Mavericks 上安装 Cantera 2.1的主要内容,如果未能解决你的问题,请参考以下文章

OSX 10.9 - Mavericks webdav 客户端锁定问题

OSX 10.9 Mavericks 钥匙串 API 坏了?

OS X 10.9 Mavericks - 使用虚拟主机设置本地主机

Aspell 不会在 OS X 10.9 (Mavericks) 上构建

在 migratePersistentStore: 到 OS X 10.9 Mavericks 上的另一个 URL 后访问 NSManagedObject 属性时崩溃

如何在 OS X 10.9 (Mavericks) 上使用 GDB 而不是 LLDB 调试 ELF 文件?