【问题标题】:CLion does not resolve my std lib header symbolsCLion 无法解析我的 std lib 标头符号
【发布时间】:2019-07-03 17:40:30
【问题描述】:

我在 linux 上启动了一个项目,现在想在 Windows 10 上构建它。因此我使用 CLion 作为我的 IDE。遗憾的是,CLion 无法解析标准标题符号。请查看我的设置截图。

我的工具链:

我的 CMake 设置:

我的项目树:

问题示例:

我的 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。如果有人也可以给我一个提示如何解决这个问题,我也会很感激。但首先我很想解决标准标题。

【问题讨论】:

  • 请提供您的 CMakeLists.txt。
  • @VictorSergienko 按要求添加

标签: cmake mingw clion


【解决方案1】:

谢谢。

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

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

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

【讨论】:

    猜你喜欢
    • 2012-08-02
    • 2020-05-23
    • 1970-01-01
    • 1970-01-01
    • 2022-07-05
    • 2018-11-11
    • 1970-01-01
    • 2017-11-13
    • 1970-01-01
    相关资源
    最近更新 更多