为什么CMAKE无法在CLion中找到我的SFML库?

时间:2016-06-12 11:01:22

标签: c++ cmake sfml clion

我正在尝试使用SFMLCLion上运行CMAKE,并且我一直收到以下错误:

  

错误:无法找到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()

任何帮助?

1 个答案:

答案 0 :(得分:0)

无法分辨,因为我们不了解您的环境。

但是,这通常有助于:

添加一个新的CMake变量cmake -DSFML_ROOT=/code/SFML path/to/source ,让它指向安装SFML的目录。

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

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

此外,您还有一个问题:

Polymorphism

第一个参数应该是目标,在您的情况下SFML_DEPENDENCIES。此外,您应该添加target_link_libraries(Polymorphism ${SFML_LIBRARIES} ${SFML_DEPENDENCIES}) 以防万一有人试图静态链接SFML。最后,这一行应如下所示:

webuse iris
reg iris seplen sepwid petlen
seplen==sepwid==petlen
seplen==sepwid==petlen==0