Я собрал boost со стандартом С++ 17 с clang в macOS Mojave при компиляции моей игровой программы, которая использует beast и asio, я получаю следующую ошибку:
< a href="https://i.stack.imgur.com/3yjqU.png" rel="nofollow noreferrer">
Это мой make-файл:
cmake_minimum_required (VERSION 3.13.1)
project (Playground)
set(Boost_USE_STATIC_LIBS ON)
set(Boost_USER_MULITHREADED ON)
set(Boost_USE_STATIC_RUNTIME OFF)
set(BOOST_ROOT "/usr/local/boost-1.68.0")
set(Boost_INLCUDE_DIR "/usr/local/boost-1.68.0/include")
set(Boost_LIBRARY_DIR_RELEASE "/usr/local/boost-1.68.0/lib")
find_package(Boost 1.68.0 REQUIRED COMPONENTS system filesystem)
set(SOURCES
src/main.cpp
src/http_client/http_client.hpp
src/http_client/http_client.cpp)
if(Boost_FOUND)
include_directories("/usr/local/boost-1.68.0/include")
add_executable (Playground ${SOURCES})
set_property(TARGET Playground PROPERTY CXX_STANDARD 17)
target_include_directories(Playground PRIVATE ${BOOST_INCLUDE_DIRS})
target_link_libraries(Playground ${BOOST_FILESYSTEM_LIBRARIES}
${BOOST_SYSTEM_LIBRARIES})
endif()
Я скомпилировал boost с помощью шагов, описанных в этом руководстве: Компиляция Повышение с помощью Clang.
Версия Clang:
Apple LLVM версии 10.0.0.0 (clang-1000.11.45.5)
Цель: x86_64-apple-darwin18.2.0
Есть ли что-то еще, что я должен принять во внимание? Я читал много сообщений и т.д., где предлагается скомпилировать boost в том же стандарте c++, который следует использовать в самом проекте.
EDIT:
Подсказка Matthieu Brucher с именами переменных (Boost_ vs. BOOST_) помогла. Теперь это работает.
Boost_SYSTEM_LIBRARY
, а неBOOST_SYSTEM_LIBRARIES
- person Matthieu Brucher   schedule 11.12.2018