2017-08-12 36 views
2

cmake版本3.8.2find_package(Boost)返回空Boost_LIBRARIES

我有一個奇怪的問題。當我做find_package(Boost)時,Boost_LIBRARIES是空的。但是當我做find_package(Boost REQUIRED filesystem)時,Boost_LIBRARIES變量顯示相應的庫。

在這兩種情況下,找到了Boost,因爲它表明Boost版本是1.64。

與REQUIRED

-- 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* 

回答

0

無論是否存在或不存在,它總是空的。

Mac High Sierra/CMake 3.10.1。

看來FindBoost.cmake的錯誤

+0

是否cmake的顯示加速版本,例如升壓版本:1.64.0?順便說一下,你應該在評論中寫下你的文章,因爲它不是一個答案。 – infoclogged

+0

@infoclogged是的。 CMake找到了正確的升級版本並將其顯示在控制檯中。 –

+0

這可能是答案。 – neckTwi