通过 vcpkg 安装并使用 CMake 设置的 SFML 项目存在问题

问题描述 投票:0回答:0

我正在尝试使用 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

我只是对如何设置和运行它以输出一个简单的窗口感到非常困惑。

c++ cmake sfml vcpkg
© www.soinside.com 2019 - 2024. All rights reserved.