【发布时间】:2018-03-05 02:23:57
【问题描述】:
当我尝试运行 cmake 来构建一个包含 SFML 库的项目时,我收到以下错误:SFML found but version too low (requested: 2.4, found: 1.x.x)
我只下载了最新版本的库 (SFML-2.4.2) 的源代码。我比运行 cmake(使用 MinGW Makefiles)并将二进制文件构建到同一个文件夹中。 我将 FindSFML 复制到我的项目的子文件夹中。 之后我有以下文件夹结构
SFML-2.4.2\
cmake\
Modules\
FindSFML.cmake
CMakeFiles
doc
...
include
lib
src
..
sfml-games\
tetris\
cmake_modules\
FindSFML.cmake
CMakeLists.txt
main.cpp
tetris-build
...
我的 CMakeLists.txt 包含以下内容:
project(Tetris)
cmake_minimum_required(VERSION 2.8)
aux_source_directory(. SRC_LIST)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake_modules")
Find_package(SFML 2 REQUIRED system window graphics network audio)
include_directories(${SFML_INCLUDE_DIR})
add_executable(${PROJECT_NAME} ${SRC_LIST})
target_link_libraries(${PROJECT_NAME} ${SFML_LIBRARY})
我发现在 cmake 中,条目 CMAKE_INSTALL_PREFIX(我没有得到)设置为 C:\Program Files (x86)\SFML,所以我将库和 SFML 的库放入 C:\Program Files (x86)\SFML。 (CMAKE_INSTALL_PREFIX 是什么,我真的应该将库和 lib 文件夹复制到我的C:\Program Files (x86)\ 吗??)。现在我的 cmake 运行了,但是当我尝试编译代码时,我得到了很多对 '_imp__....' 的未定义引用。
顺便说一下,在 linux 上,我刚刚通过 sudo apt-get install libsfml-dev 安装了 SFML,它开箱即用。
【问题讨论】: