没有规则来设定目标'D:/Dev/Libraries/SFML-2.5.1-build/lib/libsfml-graphics.a'



我正在尝试为未来的SFML项目创建一个项目模板,具有CMake.

我下载的SFML文件夹位于D:/Dev/Libraries/SFML-2.5.1/

我已经在本教程中用CMake构建了SFML。

我的sfml-project文件夹结构如下:

root
+- build
+- src
|  +- main.cpp
+- CMakeLists.txt

CMakeLists.txt含量:

cmake_minimum_required(VERSION 3.21.1)
set(PROJECT_NAME sfml-project)
set(EXECUTABLE_NAME main)
set(SFML_DIR D:/Dev/Libraries/SFML-2.5.1/build)
project(${PROJECT_NAME} LANGUAGES CXX)
find_package(SFML 2.5.1 COMPONENTS graphics system window)
file(GLOB SOURCES src/*.cpp)
add_executable(${EXECUTABLE_NAME} ${SOURCES})
target_link_libraries(${EXECUTABLE_NAME} sfml-system sfml-window sfml-graphics)

当我在build子目录中执行cmake ..时,它运行顺利:

$ cmake ..
-- Found SFML 2.5.1 in D:/Dev/Libraries/SFML-2.5.1/build
-- Configuring done
-- Generating done
-- Build files have been written to: D:/Dev/Project Templates/sfml-project/build

然而,当我使用mingw32-make之后它说:

mingw32-make[2]: *** No rule to make target 'D:/Dev/Libraries/SFML-2.5.1-build/lib/libsfml-graphics.a', needed by 'main.exe'.  Stop.
mingw32-make[1]: *** [CMakeFilesMakefile2:82: CMakeFiles/main.dir/all] Error 2
mingw32-make: *** [Makefile:90: all] Error 2

这里有什么问题?是CMakeLists.txt文件搞砸了吗?或者它是否与我下载和构建SFML的方式有关?

我已经尝试从原来的SFML-2.5.1/build/lib文件夹中复制所有.dll.a文件,但问题仍然存在。

我明白了。而不是运行mingw32-make在建设SFML与CMake教程,我不得不做mingw32-make install

最新更新