1

以前に1.42であるubuntuリポジトリからブーストインストールを行い、/usr/lib1.52をダウンロードし./b2 installてインストールしました/usr/local/lib。現在、cmake は 1.52 のみを検出し、インクルード パス/usr/local/include(1.52) を使用し、ライブラリ ディレクトリ/usr/lib(1.42) を使用しており、未定義の参照エラーが発生しています。

cmake_minimum_required(VERSION 2.6)
PROJECT(app)
set(Boost_USE_MULTITHREADED ON)
FIND_PACKAGE(Boost 1.52 COMPONENTS filesystem program_options thread system serialization  REQUIRED)
ADD_EXECUTABLE(app list_of_cpp_files)
MESSAGE(STATUS "** Boost Include: ${Boost_INCLUDE_DIR}")
MESSAGE(STATUS "** Boost Libraries: ${Boost_LIBRARIES}")
TARGET_LINK_LIBRARIES(app ${Boost_LIBRARIES})
if(CMAKE_COMPILER_IS_GNUCXX)
    set(CMAKE_CXX_FLAGS "-g -O2")
    set(CMAKE_EXE_LINKER_FLAGS "-s")
endif()

CMakeLists.txt で LIBRARY_PATH を指定しても、まだ /usr/lib を使用します

今何をすべきか?booststrap.sh --prefix=/usr重複コピーを作成しますか? また、すべてのシンボリックリンクを手動で変更する必要がありますか?

または、レポ (apt-get) から以前のインストール (1.42) を削除しますか? 依存パッケージがあるため、すべてを削除することはできません。

4

1 に答える 1

1

することで解決./bjam --layout=tagged install

于 2012-11-21T18:18:36.733 に答える