我正在编译 mpich2 1.4.1p1 对于OSX并使用-sysroot指导编译器链接SDK for 10.5。我在脚本中执行以下操作以避免每次都输入此内容。正如你所看到的,我已经对环境变量感到绝望,并且使用了我在README中可以找到的每个人(除了我禁用的fortran)。
export CFLAGS="-isysroot /Developer/SDKs/MacOSX10.5.sdk -mmacosx-version-min=10.5"
export CPPLAGS="-isysroot /Developer/SDKs/MacOSX10.5.sdk -mmacosx-version-min=10.5"
export LDFLAGS="-isysroot /Developer/SDKs/MacOSX10.5.sdk -mmacosx-version-min=10.5"
export CXXFLAGS="-isysroot /Developer/SDKs/MacOSX10.5.sdk -mmacosx-version-min=10.5"
export LIBS="-isysroot /Developer/SDKs/MacOSX10.5.sdk -mmacosx-version-min=10.5"
../configure --with-pm=gforker --enable-fast=O3 --disable-f77 --disable-fc --prefix=/opt/mpich2/64/
不幸的是,编译版本没有与OSX10.5目录中的某些库链接。
otool -L /opt/mpich2/64/bin/mpiexec
/opt/local/lib/libxml2.2.dylib (compatibility version 10.0.0, current version 10.6.0)
/opt/local/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.3)
/opt/local/lib/libiconv.2.dylib (compatibility version 8.0.0, current version 8.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.4)
/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
SDK中的iconv库是7.0.0,
otool -L /Developer/SDKs/MacOSX10.5.sdk/usr/lib/libiconv.2.dylib
/usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0)
/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.0.0)
我正在尝试分发这个应用程序,我在实验室测试的大多数OSX机器都有libiconv版本7.0.0。我不希望这是我的发行版中的要求。
grep'ing mpich的来源,我可以看到使用错误版本的日志和makefile,以及 -L/opt/local/lib/
洒在整个九头蛇和doxygen构建过程中。
我错过了哪些环境变量?我意识到这是一个复杂的构建脚本,并且有人跳过约定很有可能。我将继续通过makefile搜索。我会看看是否使用 sed
替换每个实例 -L/opt/local/lib/
我真正想要的路径修复了这个问题。