Boost标头文件位于/usr/include/boost
。
在CMakeLists.txt
我添加了include_directories
include_directories(/usr/include /usr/include/boost/
/usr/include/boost/smart_ptr)
但是,cmake
坚持不查找头文件。问题出现在intrusive_ptr.hpp
中,其中包括#include <boost/smart_ptr/intrusive_ptr.hpp
:
boost/smart_ptr/intrusive_ptr.hpp: No such file or directory
/usr/include/boost/intrusive_ptr.hpp
我的猜测是它不喜欢boost/smart_ptr/
前缀。
所以,include_directories
无效。
CMake错误:
CMake Error at /usr/local/share/cmake-3.3/Modules/FindBoost.cmake:1245
(message):
Unable to find the requested Boost libraries.
Unable to find the Boost header files. Please set BOOST_ROOT to the root
directory containing Boost or BOOST_INCLUDEDIR to the directory containing
Boost's headers.
我该怎么办?
感谢。
答案 0 :(得分:1)
虽然我不知道您的案例有哪些失败,但我建议您只使用find_package与所包含的FindBoost.cmake文件:
find_package(Boost REQUIRED)
include_directories(${Boost_INCLUDE_DIRS})
完成
答案 1 :(得分:0)
我认为您使用的是3.3 cmake版本,它支持target_include_directories。
即使target_link_library应该在这里提供帮助,如果我们链接库,也可以免费提供包含路径。