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_ALL_NO_LIB'를 정의함으로써 이것을 불가능하게 할 수 있습니다 (타겟'hello'의 요구 사항에' BOOST_ALL_NO_LIB'를 추가하면 충분할 것입니다). –
와우. 작동하는 것 같습니다! 그러나 어떻게? 내 자신의 라이브러리 타겟을 정의한다면 : lib foo : foo.cpp; 그리고 나는 그걸 부스트하는 것과 비슷하게 작동합니다. 그러면 Jamfiles를 통해 링크 할 때 왜 부스트 라이브러리로 작동하지 않습니까? –
또한 제발,이 대답을 넣어 답변 및 닫습니다 스레드로 표시 할 수 있습니다. 감사. –