gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 23:57:38 25 4
gpt4 key购买 nike

据我所知,发生的事情是这样的:

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

最佳答案

我无法判断您拥有哪个版本的 Boost.. 但问题最可能的原因是您正在使用通用的“gcc”工具集来构建。 Apple 在 Xcode 中使用了一个特殊的工具集,用于使用 GCC 变体进行构建。尝试使用 bjam toolset=darwin 进行构建。

关于python - 在 Mac OS X 上使用 bjam (Boost.Build) 构建 Python 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3610286/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com