用bjam构建Python扩展(推进。建造)在Mac OS X上

2024-09-29 02:17:30 发布

您现在位置:Python中文网/ 问答频道 /正文

据我所知,发生了什么事:

  • python.jam中,它计算出我使用的Python版本以及要查找的库目录
  • 它将-Wl-R参数添加到g++命令行以包含这些目录
  • ld命令抱怨它没有-R选项。在

所以要么(a)我有一个缺陷版本的ld,要么(b)我需要告诉bjam它需要使用一个不同的选项(-rpath也许?)或者不需要这个选项。在

我一定遗漏了一些东西——我肯定不是历史上第一个尝试在MacOSX上使用Boost构建Python扩展的人——但我不知道下一步该怎么做。有什么提示吗?在

更新:

我使用的命令是

bjam

如果我做了bjam --version,我得到

^{pr2}$

使用的工具集是macosx上默认的工具集

编译器是Mac OS X上的默认编译器(安装了开发人员工具),即GCC版本“i686-apple-darwin10-GCC-4.2.1(GCC)4.2.1(apple Inc.build 5664)”。在

链接器是macosx上的默认链接器,称为ldld64,但它没有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本身不感兴趣;我唯一的要求就是编译这个扩展,这样我就可以继续开发这个系统,这个扩展是其中一个很小但很重要的部分。在


Tags: 命令版本目录apple编译器include链接version
1条回答
网友
1楼 · 发布于 2024-09-29 02:17:30

我不知道你用的是哪种版本的Boost。。但问题最可能的原因是您正在使用通用的“gcc”工具集来构建。有一个特殊的工具集,用于构建苹果在Xcode中使用的GCC变体。尝试用bjam toolset=darwin来构建。在

相关问题 更多 >