mac端口32/64位错误

时间:2012-09-13 17:53:01

标签: macos macports

我一直在通过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位的所有内容?这会解决上述问题吗?

1 个答案:

答案 0 :(得分:1)

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

检查

which gcc

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

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