2009-10-14 5 views
4

J'utilise Ubuntu 9.10 beta, dont les dépôts contiennent boost 1.38. Je voudrais construire l'exemple de bonjour-monde. J'ai suivi les instructions ici (http://www.boost.org/doc/libs/1_40_0/libs/python/doc/tutorial/doc/html/python/hello.html), trouvé l'exemple de projet, et émis la commande "bjam". J'ai installé bjam et boost-build.Comment puis-je construire l'exemple Boost.Python sur Ubuntu 9.10?

je reçois la sortie suivante:

Jamroot:18: in modules.load 
rule python-extension unknown in module Jamfile</usr/share/doc/libboost1.38-doc/examples/libs/python/example>. 
/usr/share/boost-build/build/project.jam:312: in load-jamfile 
/usr/share/boost-build/build/project.jam:68: in load 
/usr/share/boost-build/build/project.jam:170: in project.find 
/usr/share/boost-build/build-system.jam:248: in load 
/usr/share/boost-build/kernel/modules.jam:261: in import 
/usr/share/boost-build/kernel/bootstrap.jam:132: in boost-build 
/usr/share/doc/libboost1.38-doc/examples/libs/python/example/boost-build.jam:7: in module scope 

Je ne sais pas assez sur Boost (ce qui est un exercice exploratoire pour moi-même) pour comprendre pourquoi la macro python-extension dans le Jamroot inclus est pas valide. J'exécute cet exemple à partir du répertoire d'installation, donc je n'ai pas modifié le paramètre de projet d'utilisation du Jamroot. En guise de question subsidiaire, si je devais tout simplement lancer un projet dans un répertoire arbitraire, comment écrirais-je mon jamroot?

Répondre

4

Le problème provient de l'utilisation du paquet Ubuntu au lieu de boost compilé à partir de la source. Vous devez vous éditer Jamroot pour le dire pour utiliser libboost-python global, au lieu de chercher lib dans l'arbre des sources de boost relatif.

Sommairement, vous devriez avoir ces lignes au début de votre Jamroot:

using python ; 
lib libboost_python : : <name>boost_python ; 
project : requirements <library>libboost_python ; 

Il a été rapporté comme un bogue sur Debian et corrigé au moins sur squeeze avec libboost-python1.40 ... la plupart du temps. L'exemple dans libboost_python fait toujours référence à boost_python-mt au lieu de boost_python, mais /usr/lib/libboost_python.so existe mais pas /usr/lib/libboost_python-mt.so.

Espérons que Ubuntu sera bientôt le même fixe et l'utilisateur suivant ne trébuchera pas sur ce ... Je sais que la réponse à votre question parce que je a fait eu le même problème il n'y a pas longtemps.

+0

Je crois qu'il s'agit du rapport de bogue de Debian mentionné par kriss: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=452410 – gotgenes