我想對Boost庫從Jamfile的鏈接:Boost.Build鏈接
import os ;
path-constant BOOST_ROOT : [ os.environ BOOST_ROOT ] ;
use-project /boost : $(BOOST_ROOT) ;
exe hello :
hello.cpp
/boost//filesystem
/boost//system
:
<link>static
;
雖然我可以從控制檯輸出庫編譯看到,連接器輸出的錯誤:
msvc.link bin\msvc-10.0\debug\link-static\hello.exe
LINK : fatal error LNK1104: cannot open file 'libboost_filesystem-vc100-mt-gd-1_46.lib'
爲什麼報告有錯誤? I AM從Jamfile的級別鏈接庫,那麼爲什麼圖書館應該是沒有鏈接?據我的理解,如果整個構建過程由Jamfiles控制,那麼應該靜態鏈接庫,並且不應該添加特定於編譯器的標誌(因爲它會使Jamfiles的可移植性降低)。請幫忙。
您可能在使用boost的自動鏈接功能時遇到問題。你可以通過定義'BOOST_ALL_NO_LIB'來禁用它(我想在目標'hello'的要求中加入' BOOST_ALL_NO_LIB'就足夠了)。 –
2012-09-30 20:27:56
哇。似乎工作!但是如何?如果我定義自己的庫目標: lib foo:foo.cpp;和我聯繫,就像增強它然後它的工作。那麼爲什麼在通過Jamfiles進行連接時不能與boost庫一起工作呢? –
也請,把這個答案,所以我可以標記爲答案和關閉線程。謝謝。 –