没有制定目标的规则 'D:/Dev/Libraries/SFML-2.5.1-build/lib/libsfml-graphics.a'
No rule to make target 'D:/Dev/Libraries/SFML-2.5.1-build/lib/libsfml-graphics.a'
我正在尝试为未来的 SFML 项目创建项目模板,以 CMake 为特色。
我下载的 SFML 文件夹位于 D:/Dev/Libraries/SFML-2.5.1/
我已经使用 this 教程使用 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]: *** [CMakeFiles\Makefile2: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
文件,但问题仍然存在。
我明白了。在使用 CMake 构建 SFML 教程中,我没有 运行 mingw32-make
,而是 mingw32-make install
.
我正在尝试为未来的 SFML 项目创建项目模板,以 CMake 为特色。
我下载的 SFML 文件夹位于 D:/Dev/Libraries/SFML-2.5.1/
我已经使用 this 教程使用 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]: *** [CMakeFiles\Makefile2: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
文件,但问题仍然存在。
我明白了。在使用 CMake 构建 SFML 教程中,我没有 运行 mingw32-make
,而是 mingw32-make install
.