Boost_LIBRARYDIR拼写不正确

Boost_LIBRARYDIR is not the correct spelling

本文关键字:不正确 LIBRARYDIR Boost      更新时间:2023-10-16

我正试图添加boost到我的CMakeLists.txt文件。然而,我得到这个错误:

CMake Error at /export/home/yhe/local/share/cmake-3.3/Modules/FindBoost.cmake:393 (message):
  ERROR: Boost_LIBRARYDIR is not the correct spelling.  The proper spelling
  is BOOST_LIBRARYDIR.

我正在使用cmake3.3.2和命令:

find_package(Boost 1.55.0 COMPONENTS atomic REQUIRED)

这是文件:

  1 cmake_minimum_required(VERSION 2.8.9)                                                                                                                                                                         
  2 SET(CMAKE_INCLUDE_DIR ${CMAKE_LINCLUDE_DIR} "/export/home/thirdparty/boost/1.55.0/")                                                                                                                          
  3 SET(CMAKE_LIBRARYDIR ${CMAKE_LIBRARYDIR} "/export/home/thirdparty/boost/1.55.0/lib/AS5")                                                                                                                      
  4 message(${Boost_LIBRARYDIR})                                                                                                                                                                                  
  5 find_package(Boost COMPONENTS atomic REQUIRED)                                                                                                                                                               

原来Boost_LIBRARYDIR是在我调用cmake时定义的。删除CMakeCache.txt文件,问题就解决了。我想我可能已经设置了Boost_LIBRARYDIR当我试图使它工作,它被缓存。FindBoost。当Boost_LIBRARYDIR被定义后,cmake将退出。然而,这个错误消息确实具有误导性。

BOOST_ROOT, BOOST_LIBRARYDIR, BOOST_INCLUDEDIR变量区分大小写。

我正在使用cmake和Boost。

在我使用的cmake下面。注意,我正在使用MSVC 12

进行编译
set(BOOST_ROOT C:/boost/boost_1_55_0/)
set(BOOST_INCLUDEDIR C:/boost/boost_1_55_0/boost)
set(BOOST_LIBRARYDIR C:/boost/boost_1_55_0/lib64-msvc-12.0)
set(Boost_USE_STATIC_LIBS ON)
set(Boost_USE_MULTITHREADED ON)
set(Boost_COMPILER -vc120)
find_package(Boost 1.55.0 COMPONENTS atomic REQUIRED)