【问题标题】:Why can't CMAKE find my SFML libraries in CLion?为什么 CMAKE 在 CLion 中找不到我的 SFML 库?
【发布时间】:2016-10-12 21:50:13
【问题描述】:

我正在尝试使用CMAKECLion 上运行SFML,但我不断收到以下错误:

错误:找不到 SFML(缺少:SFML_SYSTEM_LIBRARY SFML_WINDOW_LIBRARY SFML_GRAPHICS_LIBRARY SFML_NETWORK_LIBRARY SFML_AUDIO_LIBRARY)

这是我的CMakeLists.txt 文件:

cmake_minimum_required(VERSION 2.6)

if(NOT CMAKE_BUILD_TYPE)
    set(CMAKE_BUILD_TYPE Debug CACHE STRING "Choose the type of build (Debug or Release)" FORCE)
endif()

project(Polymorphism)

set(SOURCE_FILES main.cpp)
add_executable(Polymorphism ${SOURCE_FILES})

set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/Modules" ${CMAKE_MODULE_PATH})
find_package(SFML REQUIRED system window graphics network audio)
if(SFML_FOUND)
    include_directories(${SFML_INCLUDE_DIR})
    target_link_libraries(${main.cpp} ${SFML_LIBRARIES})
endif()

有什么帮助吗?

【问题讨论】:

    标签: c++ cmake sfml clion


    【解决方案1】:

    无法判断,因为我们不了解您的环境。

    但是,这通常会有所帮助:

    添加一个新的CMake变量SFML_ROOT,让它指向安装SFML的目录。

    只需将变量添加到您的 CMakeCache.txt 或在您第一次运行 CMake 时传递它,例如:

    cmake -DSFML_ROOT=/code/SFML path/to/source
    

    你在下面还有一个问题:

    target_link_libraries(${main.cpp} ${SFML_LIBRARIES})
    

    第一个参数应该是目标,在您的情况下为Polymorphism。此外,您应该添加SFML_DEPENDENCIES,以防有人试图静态链接SFML。最后这一行应该是这样的:

    target_link_libraries(Polymorphism ${SFML_LIBRARIES} ${SFML_DEPENDENCIES})
    

    【讨论】:

      猜你喜欢
      • 2015-10-19
      • 2022-09-27
      • 2021-03-04
      • 2020-03-01
      • 2015-03-30
      • 2021-03-06
      • 2020-08-08
      • 1970-01-01
      相关资源
      最近更新 更多