据我所知,发生了什么事:
python.jam
中,它计算出我使用的Python版本以及要查找的库目录-Wl-R
参数添加到g++
命令行以包含这些目录ld
命令抱怨它没有-R
选项。在所以要么(a)我有一个缺陷版本的ld
,要么(b)我需要告诉bjam它需要使用一个不同的选项(-rpath
也许?)或者不需要这个选项。在
我一定遗漏了一些东西——我肯定不是历史上第一个尝试在MacOSX上使用Boost构建Python扩展的人——但我不知道下一步该怎么做。有什么提示吗?在
更新:
我使用的命令是
bjam
如果我做了bjam --version
,我得到
使用的工具集是macosx上默认的工具集
编译器是Mac OS X上的默认编译器(安装了开发人员工具),即GCC版本“i686-apple-darwin10-GCC-4.2.1(GCC)4.2.1(apple Inc.build 5664)”。在
链接器是macosx上的默认链接器,称为ld
或ld64
,但它没有GNU ld
所具有的-R
选项,所以我假设它是一个特殊的版本,旨在允许macosx的框架概念或任何东西。它没有--version
选项。在
有一个Jamfile
,它是这样的:
import python ;
python-extension _optimor :
bill_python.cpp
bill_record_python.cpp
.. etc ...
:
<cxxflags>-fPIC
... etc ...
<variant>debug:<define>DEBUG
<include>/usr/include/python2.6
<include>../
;
它可以在Ububtu GNU/Linux上构建。在
我对Boost或bjam
本身不感兴趣;我唯一的要求就是编译这个扩展,这样我就可以继续开发这个系统,这个扩展是其中一个很小但很重要的部分。在
我不知道你用的是哪种版本的Boost。。但问题最可能的原因是您正在使用通用的“gcc”工具集来构建。有一个特殊的工具集,用于构建苹果在Xcode中使用的GCC变体。尝试用
bjam toolset=darwin
来构建。在相关问题 更多 >
编程相关推荐