繁体   English   中英

在Mac OS X上使用bjam(Boost.Build)构建Python扩展

[英]Building a Python extension with bjam (Boost.Build) on Mac OS X

据我所知,这是怎么回事:

  • 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.内部版本5664)”。

链接器是Mac OS X上的默认链接器,称为ldld64 ,但不具有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>../
    ;

它可以在Ububtu GNU / Linux上构建OK。

我对Boost或bjam本身不感兴趣; 我唯一需要编译此扩展的要求是,我可以继续开发该扩展虽然很小但很重要的部分的系统。

我不知道您使用的是哪个版本的Boost。但是最有可能导致该问题的原因是您使用的是通用的“ gcc”工具集。 有一个特殊的工具集可用于Apple在Xcode中使用的GCC变体进行构建。 尝试使用bjam toolset=darwin构建。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM