我以前从 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)?我不能全部删除,因为有依赖包。