boost - find_package(Boost) 返回空的 Boost_LIBRARIES

标签 boost

cmake版本3.8.2

我有一个奇怪的问题。当我执行 find_package(Boost) 时,Boost_LIBRARIES 为空。但是当我执行 find_package(Boost REQUIRED filesystem) 时,Boost_LIBRARIES 变量会显示相应的库。

在这两种情况下,都找到了Boost,因为它显示Boost版本是1.64。

需要

-- Boost version: 1.64.0
-- Found the following Boost libraries:
--   filesystem
--   system
       Boost_INCLUDE_DIRS: /usr/local/include
       OpenCV_INCLUDE_DIRS: /usr/local/include;/usr/local/include/opencv
       Boost_LIBRARIES: /usr/local/lib/libboost_filesystem.so;/usr/local/lib/libboost_system.so
       OpenCV_LIBRARIES: opencv_calib3d;opencv_core;opencv_features2d;opencv_flann;opencv_highgui;opencv_imgcodecs;opencv_imgproc;opencv_ml;opencv_objdetect;opencv_photo;opencv_shape;opencv_stitching;opencv_superres;opencv_video;opencv_videoio;opencv_videostab

没有必要

-- Boost version: 1.64.0
       Boost_INCLUDE_DIRS: /usr/local/include
       OpenCV_INCLUDE_DIRS: /usr/local/include;/usr/local/include/opencv
       Boost_LIBRARIES: 
       OpenCV_LIBRARIES: opencv_calib3d;opencv_core;opencv_features2d;opencv_flann;opencv_highgui;opencv_imgcodecs;opencv_imgproc;opencv_ml;opencv_objdetect;opencv_photo;opencv_shape;opencv_stitching;opencv_superres;opencv_video;opencv_videoio;opencv_videostab

boost 库不应该像 opencv 一样只显示库而不是整个路径吗?

虽然我在同一文件夹中有program_options,但Boost找不到它并且cmake抛出错误。

  Could not find the following Boost libraries:

          boost_program_options

请参阅 ll.

truncated ll output.....
-rw-r--r-- 1 root root 1558464 Aug 12 06:23 /usr/local/lib/libboost_program_options.a
lrwxrwxrwx 1 root root      34 Aug 12 06:23 /usr/local/lib/libboost_program_options.so -> libboost_program_options.so.1.64.0*
-rwxr-xr-x 1 root root  658920 Aug 12 06:23 /usr/local/lib/libboost_program_options.so.1.64.0*

最佳答案

无论 REQUIRED 是否存在,它始终为空。

Mac High Sierra/CMake 3.10.1。

这似乎是 FindBoost.cmake 的一个错误

关于boost - find_package(Boost) 返回空的 Boost_LIBRARIES,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45648260/

相关文章:

c++ - 如何获取 C++ bind(...) 表达式的签名

c++ - 为什么 std::bind 在将 icc 14.01 与 gcc 4.8 一起使用时会出错?

c++ - 从 boost 共享内存转储数据的最佳方法

c++ - 使用 Boost.Asio 时确保有效对象生命周期的最佳方法是什么?

c++ - boost::condition 会 boost 性能吗?

C++ 在 boost::mpl::vector 中为每个类加好友

c++ - cpp删除旧指针并重新初始化它

c++ - std::bind 占位符的重载运算符

c++ - 试图摆脱 C++ boost 警告

c++ - 使用 boost::bind 有什么好处?