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/