【发布时间】:2010-08-31 15:01:26
【问题描述】:
据我所知,发生了什么:
- 在
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 ld 具有的 -R 选项,所以我认为它是一个特殊版本旨在允许 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>../
;
它可以在 Ubuntu GNU/Linux 上构建。
我对 Boost 或 bjam 本身不感兴趣;我唯一的要求是编译这个扩展,这样我就可以继续开发这个扩展是一个小而重要的部分的系统。
【问题讨论】:
-
关于您的问题的信息不足,无法回答。我需要知道您是如何调用构建系统的,即您正在使用的命令以及您正在使用的工具集/编译器/sdk。