簡體   English   中英

如何在Ubuntu 9.10上構建Boost.Python示例?

[英]How can I build the Boost.Python example on Ubuntu 9.10?

我正在使用Ubuntu 9.10 beta,其存儲庫包含boost 1.38。 我想構建一個hello-world示例。 我按照這里的說明( http://www.boost.org/doc/libs/1_40_0/libs/python/doc/tutorial/doc/html/python/hello.html ),找到了示例項目,並發布了“ bjam“命令。 我已經安裝了bjam和boost-build。

我得到以下輸出:

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

我不太了解Boost(這是我自己的探索練習),以了解為什么包含的Jamroot中的python-extension宏無效。 我從安裝目錄運行這個例子,所以我沒有改變Jamroot的use-project設置。

作為一個附帶問題,如果我只是不知不覺地在任意目錄中啟動項目,我將如何編寫我的jamroot?

問題來自於使用Ubuntu軟件包而不是從源代碼編譯的boost。 你必須編輯Jamroot來說它使用全局libboost-python,而不是在相對的boost源樹中查找lib。

總而言之,你應該在Jamroot的開頭有這些行:

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

它被報道為Debian上的一個錯誤,並且至少在使用libboost-python1.40的lenny上進行了修正......大多數情況下。 libboost_python中的示例仍然引用boost_python-mt而不是boost_python,但是/usr/lib/libboost_python.so存在但不存在/usr/lib/libboost_python-mt.so。

希望Ubuntu很快會有相同的修復,下一個用戶不會發現這個...我知道你的問題的答案,因為我不久前確實遇到了完全相同的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM