1

我以前从 ubuntu repo 安装了 1.42 的 boost 安装,/usr/lib现在我下载了 1.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但不会复制副本吗?我还需要手动更改所有符号链接吗?

或者我会从 repo (apt-get) 中删除以前的安装 (1.42)?我不能全部删除,因为有依赖包。

4

1 回答 1

1

通过做一个解决./bjam --layout=tagged install

于 2012-11-21T18:18:36.733 回答