据我所知,这是怎么回事:
python.jam
中,它可以找出我正在使用的Python版本以及要查看的库目录; -Wl-R
命令行添加g++
个参数以包含这些目录; ld
命令抱怨它没有-R
选项。所以(a)我有ld
的缺陷版本,或者(b)我需要告诉bjam它需要使用不同的选项(也许-rpath
?)或者这个选项不是必需的。
我一定是缺少一些东西 - 我肯定不是历史上第一个试图在Mac OS X上使用Boost构建Python扩展的人 - 但我无法弄清楚接下来要去哪里看。任何提示?
更新
我使用的命令是
bjam
如果我bjam --version
,我会
Boost.Build V2 (Milestone 12)
Boost.Jam 03.1.18
使用的工具集是Mac OS X上的默认工具集。
编译器是Mac OS X上的默认编译器(安装了开发人员工具),它是GCC版本'i686-apple-darwin10-gcc-4.2.1(GCC)4.2.1(Apple Inc. build 5664) ”。
链接器是Mac OS X上的默认链接器,称为ld
或ld64
,但没有GNU -R
具有的ld
选项,所以我认为它是一个特殊版本,旨在允许Mac OS X的框架概念或其他。它没有--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
本身不感兴趣;我唯一的要求是编译这个扩展,这样我就可以继续开发这个扩展是一个小而重要部分的系统。
答案 0 :(得分:3)
我不知道你有哪个版本的Boost ..问题最可能的原因是你正在使用通用的“gcc”工具集进行构建。有一个特殊的工具集用于构建Apple在Xcode中使用的GCC变体。尝试使用bjam toolset=darwin
构建。