cmake - 配置 CLion、Cmake 和 SFML 的问题

标签 cmake sfml clion

我目前正在尝试配置我的 Cmake 文件以包含 SFML 库。 我的 CMakeLists.txt。如果这很重要,我正在使用 OS X Yosemite。

cmake_minimum_required(VERSION 2.8.4)
project(SFMLTest)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -stdlib=lib++")

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

#Detect and add SFML
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/Users/Home/SFML-2.2-osx-clang-universal/cmake/Modules" ${CMAKE_MODULE_PATH})
find_package(SFML 2.2 REQUIRED system window graphics network audio)
if (SFML_FOUND)
    include_directories(${SFML_INCLUDE_DIR})
    target_link_libraries(${main.cpp} ${SFML_Libraries})
endif()

我目前得到的错误是

Error:By not providing "FindSFML.cmake" in CMAKE_MODULE_PATH this project has asked 
CMake to find a package configuration file provided by "SFML", but CMake did notfind one.
Could not find a package configuration file provided by "SFML" (requested version 2.2) 
with any of the following names:
 SFMLConfig.cmake   sfml-config.cmake
Add the installation prefix of "SFML" to CMAKE_PREFIX_PATH or 
set "SFML_DIR"to a directory containing one of the above files.  
If "SFML" provides a separate development package or SDK, be sure it has been installed.

我的 FindSFML.cmake 位于

/Users/Home/SFML-2.2-osx-clang-universal/cmake/Modules

最佳答案

您的问题是查找模块的完整路径是

/Users/Home/SFML-2.2-osx-clang-universal/cmake/Modules/FindSFML.cmake

但是您要将 ${CMAKE_SOURCE_DIR}/Users/Home/SFML-2.2-osx-clang-universal/cmake/Modules 添加到您的 CMAKE_MODULE_PATH${CMAKE_SOURCE_DIR} 是包含顶级 CMakeLists.txt 文件的目录的绝对路径。如果你知道你想要包含的模块文件的绝对路径,你绝对不应该在它前面加上源代码树路径。只需将行更改为:

set(CMAKE_MODULE_PATH "/Users/Home/SFML-2.2-osx-clang-universal/cmake/Modules" ${CMAKE_MODULE_PATH})

另请注意,由于您在 find_package() 的参数中指定了 REQUIRED,如果找不到包,CMake 将终止并报错。因此,if(SFML_FOUND) 毫无意义。

关于cmake - 配置 CLion、Cmake 和 SFML 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28243397/

相关文章:

c++ - 运行 CLion C++ 示例程序时出错

c++ - CMake 3.8+ : Setting different compiler flags for projects that include both . cpp (C++) 和 .cu (CUDA) 文件

c++ - while循环困惑

c++ - 尝试包含我的源文件的 CMake 问题

c++ - sfml 2.0 中的速度和耗时

c++ - OpenCV 垫到 SFML 图像

c++ - 如何在 clion 中导入我自己的代码样式 xml 文件?

windows - 尝试使用 OpenCV 库运行示例代码后,进程已完成,退出代码为 -1073741515 (0xC0000135)

c++ - Cppcheck Cmake集成: abort build on warning

cmake 别名的用处