cmake无法检测到boost多次安装

时间:2012-11-20 17:03:56

标签: c++ boost cmake

我之前已经从ubuntu repo安装了1.42并且安装在/usr/lib中的安装现在我已经下载了安装在./b2 install的1.52和/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)?我无法删除所有因为有依赖包。

1 个答案:

答案 0 :(得分:1)

通过./bjam --layout=tagged install

解决