【发布时间】:2020-10-08 21:15:21
【问题描述】:
我正在尝试通过以下方式构建一个测试 SFML 程序:
Windows 10、CLion、MinGW64、CMake、SFML-2.5.1
CmakeList.txt
cmake_minimum_required(VERSION 3.14)
project(Test_sfml_cmake_)
set(CMAKE_CXX_STANDARD 17)
cmake_minimum_required(VERSION 3.0)
set(SFML_DIR "SFML-2.5.1/lib/cmake/SFML")
find_package(SFML 2.5 COMPONENTS graphics audio REQUIRED)
add_executable(SFMLTest main.cpp)
target_link_libraries(SFMLTest sfml-graphics sfml-audio)
MinGW 构建失败并出现错误(完整输出):
-- Found SFML 2.5.1 in D:/_Documents/Cpp Projects/Test_sfml[cmake]/SFML-2.5.1/lib/cmake/SFML
-- Configuring done
-- Generating done
-- Build files have been written to: D:/_Documents/Cpp Projects/Test_sfml[cmake]/cmake-build-debug
Scanning dependencies of target SFMLTest
mingw32-make.exe[2]: *** No rule to make target 'sfml-audio-NOTFOUND', needed by 'SFMLTest.exe'. Stop.
mingw32-make.exe[2]: *** Waiting for unfinished jobs....
[ 50%] Building CXX object CMakeFiles/SFMLTest.dir/main.cpp.obj
mingw32-make.exe[1]: *** [CMakeFiles\Makefile2:72: CMakeFiles/SFMLTest.dir/all] Error 2
mingw32-make.exe: *** [Makefile:83: all] Error 2
有谁知道问题出在哪里?
【问题讨论】:
-
您是否尝试使用
find_package(SFML ...)调用提供的SFML_*变量,如响应here 中所示? -
那里使用的是旧版本的 SFML,因此不适用于这种情况
-
好吧,你是对的;
sfml-graphics语法应该适用于最新的 SFML。您能否提供您的完整 CMake 输出?sfml-*目标设置为-NOTFOUND的事实让我认为在此过程的早期可能出现了问题。您的 CMake 输出可能会显示这一点。 -
更新问题