我正在尝试使用CMake配置项目,但是即使它们位于指定的文件夹中,它也无法找到Boost库。我已经指定了Boost_INCLUDE_DIRBoost_LIBRARYDIRBOOST_ROOT,但是我仍然收到一条错误消息,说CMake无法找到Boost。这种错误的原因可能是什么?

最佳答案

您确定自己的方法正确吗?这个想法是CMake自动设置BOOST_INCLUDE_DIRBOOST_LIBRARYDIRBOOST_ROOT。在CMakeLists.txt中执行以下操作:

FIND_PACKAGE(Boost)
IF (Boost_FOUND)
    INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIR})
    ADD_DEFINITIONS( "-DHAS_BOOST" )
ENDIF()

如果boost没有安装在默认位置并且无法被CMake找到,则可以告诉CMake在哪里寻找boost,如下所示:
SET(CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH} "C:/win32libs/boost")
SET(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} "C:/win32libs/boost/lib")

当然,这两行必须在FIND_PACKAGE(Boost)中的CMakeLists.txt之前。

关于boost - Cmake找不到Boost,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3808775/

10-11 22:47