CLion не разрешает мои символы заголовка std lib - PullRequest
0 голосов
/ 03 июля 2019

Я запустил проект на linux и теперь хочу собрать его на Windows 10. Поэтому я использую CLion в качестве своей IDE. К сожалению, CLion не смог разрешить стандартные символы заголовка. Пожалуйста, смотрите скриншоты моей установки.

Мой набор инструментов: enter image description here

Настройка моего CMake: enter image description here

Дерево моего проекта:

enter image description here

Примеры выпусков: enter image description here

Мой CMakeLists.txt

cmake_minimum_required(VERSION 3.1)
project(vilsoc)

include_directories(include)
file(GLOB SOURCES "src/*.cpp")

set(LIBS sfml-graphics sfml-window sfml-system)

if (WIN32)
    set(SFML_DIR "C:\\Program Files (x86)\\Libraries\\sfml-2.5.1-vs15-32bit")
    find_package(SFML 2.5 COMPONENTS graphics audio REQUIRED)

    if(NOT TARGET spdlog)
        # Stand-alone build
        set(SPDLOG_DIR "C:\\Program Files (x86)\\spdlog-1.3.1")
        find_package(SPDLOG REQUIRED)
    endif()

endif (WIN32)

add_executable(vilsoc main.cpp ${SOURCES})
if (WIN32)
  target_link_libraries(vilsoc ${LIBS} spdlog::spdlog)
endif (WIN32)
if (UNIX)
  target_link_libraries(vilsoc ${LIBS})
endif (UNIX)
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/logs")

Хочу отметить, что spdlog::info - это третья часть DLL, которую я использую. Если бы кто-нибудь также дал мне подсказку, как решить эту проблему, я тоже был бы благодарен. Но сначала я бы хотел, чтобы стандартные заголовки были разрешены.

1 Ответ

0 голосов
/ 04 июля 2019

Спасибо.

В Mac / clang CLion 2019.2 правильно анализирует ваш проект; он по праву не находит пространства имен spdlog и sf, так как они не включены.

Проблема «стандартных заголовков в Windows» может быть связана с mingw64 , она не поддерживается активно. Упомянутый взлом может помочь или не помочь. Если вы хотите переключиться на компилятор Visual Studio, попробуйте.

Если вы в отчаянии, установите явный путь к стандартной библиотеке с помощью include_directories(SYSTEM <dir1>).

...