我在linux上开始了一个项目,现在想在Windows10上构建它,因此我使用CLion作为我的集成开发环境。不幸的是,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。如果有人也能给我一个如何解决这个问题的提示,我也会非常感激。但首先,我希望能解决standart头文件。
发布于 2019-07-04 05:29:33
谢谢。
在Mac/clang上,CLion 2019.2可以正确地解析您的项目;它理所当然地没有找到spdlog
和sf
名称空间,因为它们没有包括在内。
“Windows上的标准头文件”的问题可能源于mingw64,它并没有得到积极的支持。上面提到的黑客攻击可能会有帮助,也可能没有帮助。如果可以选择切换到Visual Studio编译器,请尝试一下。
如果您非常需要,可以使用include_directories(SYSTEM )
设置标准库的显式路径。
https://stackoverflow.com/questions/56875444
复制相似问题