簡體   English   中英

CMAKE:找不到 Boost(缺少:date_time)(找到合適的版本“1.76.0”,最低要求是“1.76.0”)

[英]CMAKE: Could NOT find Boost (missing: date_time) (found suitable version “1.76.0”, minimum required is “1.76.0”)

我正在嘗試在 Windows 10 上使用 CMake 的 C++ 程序中添加 boost 組件 date_time。我正在寫下我到目前為止所做的事情。 以下是 CMakeLists.txt 中的代碼

# CMakeList.txt : CMake project for cmake boost with lib, include source and define
# project specific logic here.
#
cmake_minimum_required(VERSION 2.8.9)

project ("hello")
set(Boost_USE_STATIC_LIBS OFF) 
set(Boost_USE_MULTITHREADED ON)  
set(Boost_DEBUG ON)

set(Boost_USE_STATIC_RUNTIME OFF) 
find_package(Boost 1.76.0 COMPONENTS date_time) 

if(Boost_FOUND)
    include_directories(${BOOST_INCLUDEDIR}) 
    add_executable(progname file1.cxx file2.cxx) 
    target_link_libraries(progname ${BOOST_LIBRARYDIR})
endif()

add_executable(hello hello.cpp)

請記住,我已將環境變量BOOST_INCLUDEDIRBOOST_LIBRARYDIRBOOST_ROOTC:\\boost_1_76_0C:\\boost_1_76_0\\stage\\libC:\\boost_1_76_0 respectively

我不斷收到此錯誤。

-- Could NOT find Boost (missing: date_time) (found suitable version "1.76.0", minimum required is "1.76.0")
-- Configuring done
-- Generating done
-- Build files have been written to: C:/Users/jan.muhammad/source/repos/boost in cmake

以下是警告:

Severity    Code    Description Project File    Line    Suppression State
Warning     CMake Warning (dev) at C:\Users\jan.muhammad\source\repos\boost in cmake\CMakeLists.txt:12 (find_package):
  Policy CMP0074 is not set: find_package uses <PackageName>_ROOT variables.
  Run "cmake --help-policy CMP0074" for policy details.  Use the cmake_policy
  command to set the policy and suppress this warning.

  Environment variable Boost_ROOT is set to:

    C:\boost_1_76_0

  For compatibility, CMake is ignoring the variable.
This warning is for project developers.  Use -Wno-dev to suppress it.   hello   C:\Users\jan.muhammad\source\repos\boost in cmake\CMakeLists.txt    12  
Warning     CMake Warning at C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.20/Modules/FindBoost.cmake:1354 (message):
  New Boost version may have incorrect or missing dependencies and imported
  targets       C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.20/Modules/FindBoost.cmake   1354    

這是cmake .之后的控制台輸出cmake . 使用 Boost_DEBUG:

PS C:\Users\jan.muhammad\source\repos\boost in cmake> cmake .
-- Building for: Visual Studio 16 2019
CMake Deprecation Warning at CMakeLists.txt:4 (cmake_minimum_required):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


-- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.18363.
-- The C compiler identification is MSVC 19.29.30040.0
-- The CXX compiler identification is MSVC 19.29.30040.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.29.30037/bin/Hostx64/x64/cl.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.29.30037/bin/Hostx64/x64/cl.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Warning (dev) at CMakeLists.txt:12 (find_package):
  Policy CMP0074 is not set: find_package uses <PackageName>_ROOT variables.
  Run "cmake --help-policy CMP0074" for policy details.  Use the cmake_policy
  command to set the policy and suppress this warning.

  Environment variable Boost_ROOT is set to:

    C:\boost_1_76_0

  For compatibility, CMake is ignoring the variable.
This warning is for project developers.  Use -Wno-dev to suppress it.

-- [ C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.20/Modules/FindBoost.cmake:1657 ] _boost_TEST_VERSIONS = <unset>
-- [ C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.20/Modules/FindBoost.cmake:1658 ] Boost_USE_MULTITHREADED ="ON"
-- [ C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.20/Modules/FindBoost.cmake:1659 ] Boost_USE_STATIC_LIBS = "OFF"
-- [ C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.20/Modules/FindBoost.cmake:1660 ] Boost_USE_STATIC_RUNTIME = "OFF"
-- [ C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.20/Modules/FindBoost.cmake:1661 ] Boost_ADDITIONAL_VERSIONS = <unset>
-- [ C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.20/Modules/FindBoost.cmake:1662 ] Boost_NO_SYSTEM_PATHS = <unset>
-- [ C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.20/Modules/FindBoost.cmake:1694 ] BOOST_ROOT = <unset>
-- [ C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.20/Modules/FindBoost.cmake:1695 ] ENV{BOOST_ROOT} = "C:\boost_1_76_0"
-- [ C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.20/Modules/FindBoost.cmake:1696 ] BOOST_INCLUDEDIR = <unset>
-- [ C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.20/Modules/FindBoost.cmake:1697 ] ENV{BOOST_INCLUDEDIR} = "C:\boost_1_76_0"
-- [ C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.20/Modules/FindBoost.cmake:1698 ] BOOST_LIBRARYDIR = <unset>
-- [ C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.20/Modules/FindBoost.cmake:1699 ] ENV{BOOST_LIBRARYDIR} = "C:\boost_1_76_0\stage\lib"
-- [ C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.20/Modules/FindBoost.cmake:1771 ] _boost_INCLUDE_SEARCH_DIRS = "C:/boost_1_76_0;C:/boost_1_76_0/include;C:/boost_1_76_0;PATHS;C:/boost/include;C:/boost;/sw/local/include"
-- [ C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.20/Modules/FindBoost.cmake:1772 ] _boost_PATH_SUFFIXES = <unset>
-- [ C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.20/Modules/FindBoost.cmake:1787 ] location of version.hpp: C:/boost_1_76_0/boost/version.hpp
-- [ C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.20/Modules/FindBoost.cmake:1827 ] Boost_VERSION = "107600"
-- [ C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.20/Modules/FindBoost.cmake:1828 ] Boost_VERSION_STRING = "1.76.0"
-- [ C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.20/Modules/FindBoost.cmake:1829 ] Boost_VERSION_MACRO = "107600"
-- [ C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.20/Modules/FindBoost.cmake:1830 ] Boost_VERSION_MAJOR = "1"
-- [ C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.20/Modules/FindBoost.cmake:1831 ] Boost_VERSION_MINOR = "76"
-- [ C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.20/Modules/FindBoost.cmake:1832 ] Boost_VERSION_PATCH = "0"
-- [ C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.20/Modules/FindBoost.cmake:1833 ] Boost_VERSION_COUNT = "3"
-- [ C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.20/Modules/FindBoost.cmake:1857 ] Boost_LIB_PREFIX = ""
-- [ C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.20/Modules/FindBoost.cmake:1858 ] Boost_NAMESPACE = "boost"
-- [ C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.20/Modules/FindBoost.cmake:953 ] _boost_COMPILER = "-vc142;-vc141;-vc140" (guessed)
-- [ C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.20/Modules/FindBoost.cmake:1894 ] _boost_MULTITHREADED = "-mt"
-- [ C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.20/Modules/FindBoost.cmake:1972 ] _boost_ARCHITECTURE_TAG = "-x64" (detected)
-- [ C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.20/Modules/FindBoost.cmake:1976 ] _boost_RELEASE_ABI_TAG = "-"
-- [ C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.20/Modules/FindBoost.cmake:1977 ] _boost_DEBUG_ABI_TAG = "-gd"
-- [ C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.20/Modules/FindBoost.cmake:2037 ] _boost_LIBRARY_SEARCH_DIRS_RELEASE = "C:/boost_1_76_0/stage/lib;C:/boost_1_76_0/lib;C:/boost_1_76_0/stage/lib;C:/boost_1_76_0/lib64-msvc-14.2;C:/boost_1_76_0/lib64-msvc-14.1;C:/boost_1_76_0/lib64-msvc-14.0;C:/boost_1_76_0/lib;C:/boost_1_76_0/../lib;C:/boost_1_76_0/stage/lib;C:/boost_1_76_0/../lib64-msvc-14.2;C:/boost_1_76_0/../lib64-msvc-14.1;C:/boost_1_76_0/../lib64-msvc-14.0;C:/boost_1_76_0/lib64-msvc-14.2;C:/boost_1_76_0/lib64-msvc-14.1;C:/boost_1_76_0/lib64-msvc-14.0;C:/boost/lib64-msvc-14.2;C:/boost/lib64-msvc-14.1;C:/boost/lib64-msvc-14.0;PATHS;C:/boost/lib;C:/boost;/sw/local/lib"
-- [ C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.20/Modules/FindBoost.cmake:2038 ] _boost_LIBRARY_SEARCH_DIRS_DEBUG = "C:/boost_1_76_0/stage/lib;C:/boost_1_76_0/lib;C:/boost_1_76_0/stage/lib;C:/boost_1_76_0/lib64-msvc-14.2;C:/boost_1_76_0/lib64-msvc-14.1;C:/boost_1_76_0/lib64-msvc-14.0;C:/boost_1_76_0/lib;C:/boost_1_76_0/../lib;C:/boost_1_76_0/stage/lib;C:/boost_1_76_0/../lib64-msvc-14.2;C:/boost_1_76_0/../lib64-msvc-14.1;C:/boost_1_76_0/../lib64-msvc-14.0;C:/boost_1_76_0/lib64-msvc-14.2;C:/boost_1_76_0/lib64-msvc-14.1;C:/boost_1_76_0/lib64-msvc-14.0;C:/boost/lib64-msvc-14.2;C:/boost/lib64-msvc-14.1;C:/boost/lib64-msvc-14.0;PATHS;C:/boost/lib;C:/boost;/sw/local/lib"
CMake Warning at C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.20/Modules/FindBoost.cmake:1354 (message):
  New Boost version may have incorrect or missing dependencies and imported
  targets
Call Stack (most recent call first):
  C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.20/Modules/FindBoost.cmake:1476 (_Boost_COMPONENT_DEPENDENCIES)
  C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.20/Modules/FindBoost.cmake:2086 (_Boost_MISSING_DEPENDENCIES)
  CMakeLists.txt:12 (find_package)
-- [ C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.20/Modules/FindBoost.cmake:2223 ] Searching for DATE_TIME_LIBRARY_RELEASE: boost_date_time-vc142-mt-x64-1_76;boost_date_time-vc142-mt-x64;boost_date_time-vc142-mt;boost_date_time-vc141-mt-x64-1_76;boost_date_time-vc141-mt-x64;boost_date_time-vc141-mt;boost_date_time-vc140-mt-x64-1_76;boost_date_time-vc140-mt-x64;boost_date_time-vc140-mt;boost_date_time-mt-x64-1_76;boost_date_time-mt-x64;boost_date_time-mt;boost_date_time-mt;boost_date_time
-- [ C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.20/Modules/FindBoost.cmake:2278 ] Searching for DATE_TIME_LIBRARY_DEBUG: boost_date_time-vc142-mt-gd-x64-1_76;boost_date_time-vc142-mt-gd-x64;boost_date_time-vc142-mt-gd;boost_date_time-vc141-mt-gd-x64-1_76;boost_date_time-vc141-mt-gd-x64;boost_date_time-vc141-mt-gd;boost_date_time-vc140-mt-gd-x64-1_76;boost_date_time-vc140-mt-gd-x64;boost_date_time-vc140-mt-gd;boost_date_time-mt-gd-x64-1_76;boost_date_time-mt-gd-x64;boost_date_time-mt-gd;boost_date_time-mt;boost_date_time
-- Could NOT find Boost (missing: date_time) (found suitable version "1.76.0", minimum required is "1.76.0")
-- Configuring done
-- Generating done
-- Build files have been written to: C:/Users/jan.muhammad/source/repos/boost in cmake

以下列表應該可以解決問題:

project ("hello")

# either set it here or from the command line
set(BOOST_ROOT "C:/boost_1_76_0")   

set(Boost_USE_STATIC_LIBS OFF) 
set(Boost_USE_MULTITHREADED ON)  
set(Boost_USE_STATIC_RUNTIME OFF) 
set(Boost_ADDITIONAL_VERSIONS "1.76.0" "1.76")
find_package(Boost 1.76.0 COMPONENTS date_time)
if(Boost_FOUND)
    include_directories(${Boost_INCLUDE_DIRS})         
endif()

add_executable(hello file1.cxx file2.cxx)
target_include_directories(hello PUBLIC ${Boost_INCLUDE_DIRS}) 
target_link_libraries(hello ${Boost_LIBRARIES})

主要區別:

  • 設置BOOST_ROOT
  • 使用Boost_ADDITIONAL_VERSIONS
  • 對目標使用target_include_directories()
  • 使用Boost_LIBRARIES而不是BOOST_LIBRARYDIR鏈接

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM