Pour autant que je peux dire ce qui se passe est ceci:Construire une extension Python avec bjam (Boost.Build) sous Mac OS X
- En
python.jam
, cela fonctionne quelle version de Python J'utilise et qui répertoires de bibliothèques à regarder; - Il ajoute
-Wl-R
arguments à la ligne de commandeg++
pour inclure ces répertoires; La commandeld
se plaint de ne pas avoir d'option-R
.
Donc (a) J'ai une version défectueuse de ld
, ou (b) je besoin de dire bjam qu'il a besoin d'utiliser une autre option (-rpath
peut-être?) Ou que cette option ne soit pas nécessaire. Il me manque quelque chose - je ne suis sûrement pas la première personne dans l'histoire à essayer de construire une extension Python avec Boost sur Mac OS X - mais je ne sais pas où regarder. Des indices?
Mise à jour:
La commande J'utilise est
bjam
Si je bjam --version
, je reçois
Boost.Build V2 (Milestone 12)
Boost.Jam 03.1.18
Le jeu d'outils utilisé est ce que le jeu d'outils par défaut est sous Mac OS X
Le compilateur est le compilateur par défaut sur Mac OS X (avec le outils de développement installés), qui est la version GCC 'i686-pomme-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5664)'.
L'éditeur de liens est l'éditeur de liens par défaut sous Mac OS X, qui est appelé ld
ou ld64
, mais qui n'a pas l'option -R
que GNU ld
a, je suppose qu'il est une version spéciale conçue pour permettre Mac OS X de concept de cadres ou quoi que ce soit. Il n'a pas d'option --version
.
Il y a un Jamfile
, qui va comme ceci:
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>../
;
Il construit sur OK Ububtu GNU/Linux.
Je ne suis pas intéressé par Boost ou bjam
en soi; ma seule exigence pour compiler cette extension afin que je puisse continuer à développer le système dont cette extension est une petite mais importante partie.
Il n'y a pas suffisamment d'informations sur votre question pour y répondre. J'ai besoin de savoir comment vous appelez le système de construction, c'est-à-dire la commande que vous utilisez et quel toolet/compilateur/sdk vous utilisez. – GrafikRobot