我正在使用 CMake 构建一个项目,该项目除其他外链接到 boost。我使用 CMake 2.8.7,我有
set(Boost_NO_SYSTEM_PATHS true)
我用
find_package(Boost COMPONENTS system filesystem regex REQUIRED)
然后我链接使用
target_link_libraries(projectname ${Boost_LIBRARIES})
我使用环境变量BOOST_ROOT来指定Boost的位置,我的问题如下:
当我设置
BOOST_ROOT=/opt/Boost_1_47
CMake 将库的完整路径传递给链接器,而如果我设置
BOOST_ROOT=/usr
它使用链接
-lboost_filesystem-mt
等等 CMakeLists.txt 在这两种情况下都是一样的,我唯一改变的是环境变量 BOOST_ROOT。为什么 CMake 在这两种情况下都不通过完整路径?