3

ブースト ライブラリ (正規表現) を使用する単純な main.cpp をクロス コンパイルしたいです。ターゲット プラットフォームはラズベリー pi (raspbian) です。libboost-all-dev パッケージを apt-get からインストールしました。したがって、ヘッダーはraspiにありました。

次に、別のチュートリアルから、rsync を介して /usr と /lib をホスト システムにコピーするように言われました。そのため、ホスト ディレクトリ (/home/vitor/local/{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!

必要なコンポーネントからテストを削除した場合。コマンドは正常に動作します。

ps .: 私の toolchain.cmake ファイルでは、次の 2 行だけでライブラリを見つけることができました。

SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY NEVER)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE NEVER)

libboost_test.so を見つけるにはどうすればよいですか?

4

1 に答える 1