我之前已经从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)?我无法删除所有因为有依赖包。
答案 0 :(得分:1)
通过./bjam --layout=tagged install