2012-12-12 3 views
3

내 프로젝트에 boost.build를 사용합니다. 물론, 나는 부스트 자체를 사용한다. 또한 테스트 목적으로 내 프로젝트에 Google 테스트 라이브러리를 사용합니다. 내 프로젝트를 Google 테스트의 정적 라이브러리와 연결해야합니다. 나는 (리눅스의 gcc가 너무 작동을 위해) 그것은 추한의 종류를 보이는boost.build 프로젝트를 특정 정적 라이브러리에 연결하는 방법

exe foo : $(IMPORTANT_PART) $(TEST_UTILITY_PART) : <toolset>gcc <linkflags>"../../libs/gtest-1.6.0/libs/gtest_main.a" <linkflags>-static <linkflags>-lpthread ; 

는 MinGW를 위해 그렇게 할 수있는 해결 방법을 찾았지만 작동합니다. MSVC에 대한 규칙은 boost.build 프로젝트 파일의 외부 정적 라이브러리와 대상을 연결하는 자연적인 방법이 있나요 훨씬 더

exe foo : $(IMPORTANT_PART) $(TEST_UTILITY_PART) : <toolset>msvc <linkflags>/LIBPATH:../../libs/gtest-1.6.0/libs <linkflags>/DEFAULTLIB:gtest_main-mdd.lib 
<linkflags>/DEFAULTLIB:gtestd-md.lib 
; 

추한 보인다.


P. google-test를 사용하고 부스트 믹스를 사용하는 소스는 좋지 않지만 냄새는 좋지 않지만 어쨌든 부스트를 커버하는 많은 외부 라이브러리가 있습니다.

TIA

+0

적어도 google-test 용 Jamroot를 만들고 내 프로젝트를 use-project 문으로이 새로운 프로젝트에 연결할 수 있습니다. 부스트 링 기능을 사용하십시오. 하지만 외부 정적 라이브러리를 링크하는 방법에 대한 질문은 아직 열려 있습니다. –

답변

1

위대한! 누가 나를 가리킨 persond 감사합니다 http://www.boost.org/boost-build2/doc/html/bbv2/tutorial/prebuilt.html 페이지. (코멘트는 사라졌습니다) 나는이 페이지를주의 깊게 읽지 않았던 것 같습니다. 그리고 파일 속성을 가진 lib 타겟은 내가 검색 한 것을 수행한다. 감사!


google 테스트 및 부스트 빌드를 사용하는 방법은 다음과 같습니다. Google 테스트 용 Jamfile을 만들었습니다. 그것은 매우 간단합니다 :

gtest.lib/Jamfile 
    project gtest_main 
     : requirements <include>../../../libs/gtest-1.6.0/include 
         <include>../../../libs/gtest-1.6.0/ 
     : source-location ../../../libs/gtest-1.6.0 
     : build-dir ../../../libs/gtest-1.6.0/bin.b2 ; 

    lib gtest_main : src/gtest_main.cc src/gtest-all.cc : <link>static ; 

그런 다음, 어딘가에 내 프로젝트 파일에 :

사용 프로젝트/gtest : ./gtest.lib;

및 프로젝트 요구 사항 섹션에서 // gtest를 언급합니다.