CLion无法解析我的std lib标头符号

时间:2019-07-03 17:40:30

标签: cmake mingw clion

我在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 :(得分:0)

谢谢。

在Mac / clang上,CLion 2019.2正确解析您的项目;它正确地找不到spdlogsf命名空间,因为它们不包括在内。

“ Windows上的标准标头”问题可能源于mingw64,因此不受积极支持。提到的黑客可能会或可能不会有帮助。如果选择切换到Visual Studio编译器,请尝试。

如果不顾一切,请使用include_directories(SYSTEM <dir1>)设置标准库的显式路径。