我正在尝试使用 Visual Studio Code 中的 CMake 设置 SFML 项目(我通过 vcpkg 安装)。经过几周的尝试/观看教程后,似乎无法让它发挥作用。
项目目录:
- \build
- \cmake_modules
- FindSFML.cmake
- CMakeLists.txt
- main.cpp
下面是我的 CMakeLists.txt 文件。
cmake_minimum_required(VERSION 3.0)
set(CMAKE_CXX_STANDARD 20)
project(demo)
set(CMAKE_PREFIX_PATH "C:/src/vcpkg/installed/x64-windows/share")
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake_modules")
find_package(SFML COMPONENTS system window graphics audio CONFIG REQUIRED)
include_directories(${SFML_INCLUDE_DIR})
add_executable(${PROJECT_NAME} src/main.cpp)
target_link_libraries(${PROJECT_NAME} ${SFML_LIBRARIES})
我使用以下方式安装了 sfml:
vcpkg install sfml:x64-windows
。我知道对于 vcpkg,我们也可以使用 set(CMAKE_TOOLCHAIN_FILE path/to/vcpkg.cmake)
或使用如下所示的 PREFIX_PATH,但这并没有改变任何东西。也有人说设置模块路径(并具有 FindSFML.cmake 文件)对于查找 SFML 是必要的,但显然最近它不再需要了?但话又说回来,当我不包含 module_path 文件夹时,它告诉我当我在构建文件夹上运行 cmake 时很难找到 SFML。
跑步的那一刻:
cmake -G "MinGW Makefiles"
它似乎构建到我的构建文件夹没有任何问题,这就是它所说的:
-- Found SFML 2.6.0 in C:/src/vcpkg/installed/x64-windows/share/sfml
-- Configuring done (0.1s)
-- Generating done (0.1s)
-- Build files have been written to:
C:path/to/build
但是当我运行:
mingw32-make
时,它在我的 main.cpp 的第一行显示一个错误(这只是#include <SFML/Graphics.hpp>
)并说
fatal error: SFML/Graphics.hpp: No such file or directory compilation terminated.
mingw32-make[2]: *** [CMakeFiles\demo.dir\build.make:75: CMakeFiles/demo.dir/src/main.cpp.obj] Error 1
mingw32-make[1]: *** [CMakeFiles\Makefile2:82: CMakeFiles/demo.dir/all] Error 2
mingw32-make: *** [makefile:90: all] Error 2
我只是对如何设置和运行它以输出一个简单的窗口感到非常困惑。