在mac osx leopard上安装c ++ boost - 端口失败

时间:2009-07-12 22:10:51

标签: c++ macos boost installation

我不是一个c ++程序员,只是一个尝试从源代码安装现有项目的最终用户。 项目依赖项之一是boost库。 当我尝试使用“sudo port install boost”在我的osx 10.5.7上安装boost时,收到以下错误消息:

--->  Building boost with target all
Error: Target org.macports.build returned: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_boost/work/boost_1_35_0" && gmake all " returned error 2
Command output: Makefile:2: *** missing separator.  Stop.

Error: Status 1 encountered during processing.

帮助?

编辑:我怀疑我的系统出了什么问题,虽然我不确定是什么 - 它只是一个简单的osx安装+附带的xcode CD,没什么特别的。 [在Linux的这方面,事情变得如此简单!)

我按照回答的建议做了“sudo port selfupdate”和“sudo port upgrade outdated” 第二个跑了一整夜,然后失败了很多错误,最后几个是:

Error: The following dependencies failed to build: db46
Error: Unable to upgrade port: 1
--->  Extracting tiff
On Mac OS X 10.5, tiff 3.8.2 requires Xcode 3.1 or later but you have Xcode 3.0.
Error: Target org.macports.extract returned: incompatible Xcode version
Error: Unable to upgrade port: 1
--->  Activating xorg-renderproto @0.9.3_0
Error: Target org.macports.activate returned: Image error: /opt/local/include/X11/extensions/render.h is being used by the active render port.  Please deactivate this port first, or use 'port -f activate xorg-renderproto' to force the activation.
Error: The following dependencies failed to build: xorg-renderproto
Error: Unable to upgrade port: 1

4 个答案:

答案 0 :(得分:3)

根据我的经验,您可以轻松地与其他安装程序一起执行操作,这些安装程序可能会破坏端口命令以使其正常工作。更不用说MacPorts对我来说是最随机的。一旦我使用port命令删除了perl。它打破了整个端口的安装,甚至没有试过这个。

如果可以,我可以使用 gcc 从源代码构建Boost。实际上并不困难。

我已经写了一篇关于如何使用一些细节here执行此操作的文章。 它特别关注如何在Mac OS X上执行此操作,但也说明了如何在Windows上执行此操作。

您需要的两个命令是:

使用GCC构建调试库:

bjam toolset= darwin variant=debug threading=multi link=static

使用GCC构建版本库:

bjam toolset=darwin variant=release threading=multi link=static

有关执行此操作的更详细信息here

答案 1 :(得分:2)

尝试运行“sudo port selfupdate”。您使用的是过时的MacPorts版本。完成此操作后,运行“port upgrade outdated”以更新您拥有的端口,然后尝试再次安装boost。


更新: 将XCode更新为以下帖子中提到的Paul。你可以在Apple Developer Site上获得它。您可能需要注册才能获得下载链接。至于有关活动渲染端口的错误,您可以安全地禁用此端口,因为它已被xorg-renderproto替换。通过运行“sudo port deactivate render”停用它。完成后,您可以使用“port upgrade outdated”再次更新,此时间不会太长。

答案 2 :(得分:2)

  

在Mac OS X 10.5上,tiff 3.8.2需要Xcode 3.1 或更高版本,但您有Xcode 3.0

这不是port upgrade outdated失败的原因吗?

答案 3 :(得分:1)

我对MacPorts的体验充其量只是一种喜忧参半的祝福。有时端口已经过时,或只有一半完成,它的工作非常好,但不幸的是并不总是如此,所以我有点放弃port说实话......

也就是说,来自boost分配的默认configurebjam,...组合在os x上完美运行,你有什么理由想通过port让它工作吗?