1

通过 2011 mac book pro 在 Mac osx 10.7.4 上,我不断收到与以下问题相关的错误。

这些错误主要来自数学相关的开发库,这些开发库在各种 Linux 机器上编译和运行示例代码而没有错误,同时使用类似的 make 文件

我得到的错误通常是

ld: symbol(s) not found for architecture x86_64

这也发生在各种编译器上,无论我如何编译我链接的 lib、clang、各种版本的 gcc 甚至是 haskell 的 ghc

一些给我错误的库是

  • PETSC(我从源代码编译,没有一个例子用 make test 编译)
  • GSL(来自macports)给出了同样的错误
  • FFTW ......而且名单还在继续

我相信罪魁祸首是某些地方(可能是编译器)是通过macports不正确地编译的,

例如gcc -v说它是编译的Target: i686-apple-darwin11

--build=i686-apple-darwin11 --enable-llvm=/private/var/tmp/llvmgcc42/llvmgcc42-2336.11~28/dst-llvmCore/Developer/usr/local --program-prefix=i686-apple-darwin11- --host=x86_64-apple-darwin11 --target=i686-apple-darwin11

而所有其他编译器,clang,g++-mp-4.7 exc,都说 Target: x86_64-apple-darwin11

这个问题有什么解决办法吗?

有没有办法重新编译所有强制 64 位的东西?能解决上面的问题吗?

4

1 回答 1

1

Mac OS X 有自己的构建工具链,所以这可能是路径问题。

查看

which gcc

并将路径与您知道来自 mac 端口(可能在 /opt/bin 中)的任何库进行比较。

作为一种解决方案,将 /opt/bin 路径放在 $PATH 的开头应该可以解决。

于 2012-09-13T17:56:46.380 回答