微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

CMake找到Boost但没有设置Boost_INCLUDE_DIR

如何解决CMake找到Boost但没有设置Boost_INCLUDE_DIR

我正在尝试使用从源代码构建的Boost版本在CentOS 5上构建CMake项目。我已经在/tmp/boost/boost_1_74_0中安装了Boost 1.74.0。在我的CMakeLists.txt中,我尝试使用find_package(Boost 1.72 required COMPONENTS graph)查找此安装。我还将-DBOOST_ROOT=/tmp/boost/boost_1_74_0传递给cmake

表面上对find_package调用成功。但是,Boost_INCLUDE_DIR随后仍设置为Boost_INCLUDE_DIR-NOTFOUND。我不明白为什么或如何发生,该项目建立在我通过软件包管理器安装了Boost的其他几个系统上。即使我将/tmp/boost/boost_1_74_0/boost符号链接或复制到/usr/include,CMake仍无法设置Boost_INCLUDE_DIR。这里可能是什么问题?

当我还指定-DBoost_DEBUG=ON时,这就是CMake的输出

-- Finding boost...                                                                                                                                                                                                                          
-- Found Boost 1.74.0 at /usr/lib/cmake/Boost-1.74.0                                                                                                                                                                                         
--   Requested configuration: QUIET required COMPONENTS graph                                                                                                                                                                                
-- BoostConfig: find_package(boost_headers 1.74.0 EXACT CONfig required QUIET HINTS /usr/lib/cmake)                                                                                                                                          
-- Found boost_headers 1.74.0 at /usr/lib/cmake/boost_headers-1.74.0                                                                                                                                                                         
-- BoostConfig: find_package(boost_graph 1.74.0 EXACT CONfig required QUIET HINTS /usr/lib/cmake)                                                                                                                                            
-- Found boost_graph 1.74.0 at /usr/lib/cmake/boost_graph-1.74.0                                                                                                                                                                             
-- Boost toolset is gcc8 (GNU 8.3.1)                                                                                                                                                                                                         
-- Scanning /usr/lib/cmake/boost_graph-1.74.0/libboost_graph-variant*.cmake                                                                                                                                                                  
--   Including /usr/lib/cmake/boost_graph-1.74.0/libboost_graph-variant-shared.cmake                                                                                                                                                         
--   [x] libboost_graph.so.1.74.0                                                                                                                                                                                                            
--   Including /usr/lib/cmake/boost_graph-1.74.0/libboost_graph-variant-static.cmake                                                                                                                                                         
--   [ ] libboost_graph.a                                                                                                                                                                                                                    
-- Adding boost_graph dependencies: regexheaders                                                                                                                                                                                             
-- Found boost_regex 1.74.0 at /usr/lib/cmake/boost_regex-1.74.0                                                                                                                                                                             
-- Boost toolset is gcc8 (GNU 8.3.1)                                                                                                                                                                                                         
-- Scanning /usr/lib/cmake/boost_regex-1.74.0/libboost_regex-variant*.cmake                                                                                                                                                                  
--   Including /usr/lib/cmake/boost_regex-1.74.0/libboost_regex-variant-shared.cmake                                                                                                                                                         
--   [x] libboost_regex.so.1.74.0                                                                                                                                                                                                            
--   Including /usr/lib/cmake/boost_regex-1.74.0/libboost_regex-variant-static.cmake                                                                                                                                                         
--   [ ] libboost_regex.a
-- Adding boost_regex dependencies: headers
-- Configuring done
CMake Error: The following variables are used in this project,but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
Boost_INCLUDE_DIR

解决方法

Boost_INCLUDE_DIR是一个变量,可以将其指定为FindBoost.cmake模块的输入,以查找Boost安装。您更可能对FindBoost.cmake模块填充的Boost_INCLUDE_DIRS变量(请注意结尾的S)感兴趣。有关更多信息,请参见documentation

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?