2009-06-16 8 views
4

J'utilise boost build dans mon projet et maintenant je veux utiliser boost date_time. J'ai googlé et trouvé qu'il devrait (probablement) être utilisé de cette façon:boost build site-config.jam sur gentoo

exe test : test.cpp /boost/date_time//date_time ; 

mais je reçois ce message:

error: Unable to find file or target named 
error:  '/boost/date_time//date_time' 
error: referred from project at 
error:  '.' 

(quand j'utilise -lboost_date_time comme gcc manuellement, il fonctionne correctement) Je pensais que la bibliothèque a Oly à ajouter au site config.jam, donc j'essayé d'ajouter ceci:

project /boost/date_time ; 
lib date_time ; 

mais il n'a pas d'effet.

Qu'est-ce que je fais de mal?

Thaks

Edit: Je ne suis pas à la recherche d'une solution qui fonctionne. J'ai besoin de quelque chose qui fonctionnera pour tout le monde avec l'installation correcte des bibliothèques boost.build et boost.

Répondre

2

je vous recommande de jeter un oeil à contrib/coup de pouce Module .jam dans les versions actuelles de Boost.Build. Il vous permet de déclarer les cibles nécessaires pour chaque bibliothèque presque automatiquement.

Ou tentative originale n'est pas exactement correcte. Pour avoir "/ site-config // boost_date_time" fonctionne, vous devez avoir ce site dans config.jam:

project site-config ; 
searched-lib boost_date_time ; 

Cela fonctionne, sous Linux, si le fichier de bibliothèque est nommé libboost_date_time.so (qui est le cas si Boost a été construit avec --layout = system). Sous Windows, vous n'avez besoin de rien de tout cela, grâce à l'auto-liaison.

1

Je n'ai pas beaucoup d'expérience avec build boost, mais je crois que votre spécification dans le site config est désactivée (voir here et here). Si vous essayez de mettre un boost_date_time préconstruits dans votre site-config, alors il devrait être:

project site-config ; 
lib b_date_time : : <name>boost_date_time ; 

Et dans votre répertoire:

exe test : test.cpp /site-config//b_date_time ; 
+0

Merci pour la réponse. Cela fonctionne, mais est-ce la bonne façon de spécifier les bibliothèques de boost prédéfinies? La chose que j'essaye de faire est que quand quelqu'un avec l'installation fraîche (et correcte) de construction de poussée tire mon projet, il devrait juste compiler. Je vais devoir ajouter ceci à la question :-) – cube

+1

Je suis à peu près sûr que ça fonctionnera si quelqu'un a installé boost_date_time, mais je ne pourrais pas dire si ce sont les meilleures pratiques. Vous pourriez avoir plus de traction sur une liste de diffusion boost: http://www.boost.org/community/groups.html#jamboost –