【问题标题】:No rule to make target 'D:/Dev/Libraries/SFML-2.5.1-build/lib/libsfml-graphics.a'没有规则使目标'D:/Dev/Libraries/SFML-2.5.1-build/lib/libsfml-graphics.a'
【发布时间】:2021-07-31 05:35:08
【问题描述】:

我正在尝试为未来的 SFML 项目创建一个项目模板,其中包含 CMake。

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

我已经使用 CMake 和 this 教程构建了 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 文件,但问题仍然存在。

【问题讨论】:

    标签: makefile cmake sfml mingw-w64


    【解决方案1】:

    我想通了。我不必在使用 CMake 构建 SFML 教程中运行 mingw32-make,而是必须执行 mingw32-make install

    【讨论】:

      猜你喜欢
      • 2015-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      • 2016-08-25
      相关资源
      最近更新 更多