2013-06-03 5 views
2

부스트 라이브러리 (정규식)를 사용하는 간단한 main.cpp을 컴파일하고 싶습니다. 타겟 plataform은 나무 딸기 파이 (raspbian)입니다. apt-libboost-all-dev 패키지를 설치했습니다. 그래서 머리글은 raspi에있었습니다.cmake가 부스트 라이브러리를 찾을 수 없습니다

그런 다음 다른 튜토리얼에서/usr과/lib를 rsync를 통해 내 호스트 시스템에 복사하라는 메시지가 표시되었습니다. 그래서 난 내 호스트 디렉토리에 복사 (/ 홈/비터/지역/{USR, LIB})이 CMakeLists.txt

cmake_minimum_required(VERSION 2.8) 
project(BoostRegex) 

set(Boost_ADDITIONAL_VERSIONS "1.49" "1.49.0") 
set(BOOST_ROOT /home/vitor/local/usr/lib) 
set(BOOST_INCLUDEDIR /home/vitor/local/usr/include) 
set(BOOST_LIBRARYDIR /home/vitor/local/usr/lib) 

add_definitions(-DBOOST_ALL_NO_LIB) 

find_package(Boost COMPONENTS system test regex REQUIRED) 

message(status " ** Boost Root: ${BOOST_ROOT} **") 
message(status " ** Boost Include: ${BOOST_INCLUDEDIR} **") 
message(status " ** Boost Libraries Dirs: ${BOOST_LIBRARY_DIRS} **") 
message(status " ** Boost Librraries: ${BOOST_LIBRARYDIR} **") 

include_directories(${BOOST_INCLUDEDIR}) 
link_directories(${BOOST_LIBRARYDIR}) 

add_executable(BoostRegex BoostRegex.cpp) 
target_link_libraries(BoostRegex ${Boost_LIBRARIES}) 

명령 사용

내가 한을했다 :

cmake -DCMAKE_TOOLCHAIN_FILE=/home/vitor/bin/raspi/cmaketoolchain/toolchain.cmake ../src/ 

cmake가 테스트 라이브러리를 찾지 못했습니다./home/vitor/usr/lib에있는 ls 표시 :

libboost_system.so 
libboost_regex.so 
libboost_unit_test_framework-mt.so 

libboost_test.so는 발견되지 않았습니다. 내가 필요한 구성 요소에서 테스트를 제거하면

Unable to find the requested Boost libraries. 
Boost version: 1.49.0 
Boost include path: /home/vitor/local/usr/include 
The following Boost libraries could not be found: 

     boost_test 

Some (but not all) of the required Boost libraries were found. You may 
need to install these additional Boost libraries. Alternatively, set 
BOOST_LIBRARYDIR to the directory containing Boost libraries or BOOST_ROOT 
to the location of Boost. 
Call Stack (most recent call first): 
    CMakeLists.txt:12 (find_package) 


status ** Boost Root: /home/vitor/local/usr/lib ** 
status ** Boost Include: /home/vitor/local/usr/include ** 
status ** Boost Libraries Dirs: ** 
status ** Boost Librraries: /home/vitor/local/usr/lib ** 
-- Configuring incomplete, errors occurred! 

:

Finnaly, 이것은 내가 가진 오류입니다. 명령이 정상적으로 작동합니다.

추신 : 내 toolchain.cmake 파일에서, 나는 단지이 두 줄과 libs와 찾을 수 있었다 :

SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY NEVER) 
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE NEVER) 

나는 libboost_test.so을 찾기 위해 무엇을 할 수 있는가?

답변

3

"테스트"라는 부스트 목표가 있다고 생각하지 않습니다. 대신에 "unit_test_framework"여야합니다.

로 변경해보십시오 :

find_package(Boost COMPONENTS system unit_test_framework regex REQUIRED) 
+0

안녕하세요, 감사합니다, 그것은 작동한다! 하지만이 unit_test_framework 테스트는 똑같습니까? 이번에는 make 명령에서 새로운 오류가 발생했습니다. 다른 질문을하겠습니다. 감사! –