2010-08-31 1 views
1

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 commande g++ pour inclure ces répertoires; La commande ld 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.

+0

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

Répondre

3

Je ne peux pas dire quelle version de Boost vous avez .. BUt la raison la plus probable du problème est que vous utilisez le jeu d'outils générique "gcc" pour construire. Il existe un ensemble d'outils spécial pour construire avec la variante GCC qu'Apple utilise dans Xcode. Essayez de construire avec bjam toolset=darwin à la place.