我不是一个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
答案 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分配的默认configure
,bjam
,...组合在os x上完美运行,你有什么理由想通过port
让它工作吗?