本文介绍了Vcpkg 不能在带有 mingw 的 Windows 上工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我实际上正在尝试使用 cmake 和 MinGW 在 windows 上制作 vcpkg,但似乎他不想使用 MinGW

i'm actually trying to make vcpkg with cmake and MinGW working on windows but it seems like he don't want to use MinGW

这里是错误:

-- Running vcpkg install - done
-- The C compiler identification is GNU 8.1.0
-- The CXX compiler identification is GNU 8.1.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/Program Files (x86)/mingw-w64/i686-8.1.0-posix-dwarf-rt_v6-rev0/mingw32/bin/gcc.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files (x86)/mingw-w64/i686-8.1.0-posix-dwarf-rt_v6-rev0/mingw32/bin/g++.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Error at vcpkg/scripts/buildsystems/vcpkg.cmake:771 (_find_package):
  Could not find a configuration file for package "glfw3" that is compatible
  with requested version "".

  The following configuration files were considered but not accepted:

    C:/Users/ErikT/Desktop/ManiaEngine/build/vcpkg_installed/x64-windows/share/glfw3/glfw3Config.cmake, version: 3.3.4 (64bit)

Call Stack (most recent call first):
  CMakeLists.txt:7 (find_package)

这是我的 cmake

cmake_minimum_required(VERSION 3.20)
project(ManiaEngine)

SET(CMAKE_CXX_STANDARD 17)

## Find dependencies
find_package(glfw3 REQUIRED)
find_package(glm REQUIRED)
find_package(Vulkan REQUIRED)


## Create ManiaEngine executable
add_executable(ManiaEngine
    source/Launch.cpp
    source/Window.cpp
    )

target_include_directories(ManiaEngine
  PRIVATE
    "${CMAKE_CURRENT_LIST_DIR}/source"
)

target_link_libraries(
  ManiaEngine
  PRIVATE
    glfw
    glm::glm
    Vulkan::Vulkan
)

我使用 CMakePresets 来编译 vcpkg :

I use a CMakePresets to compiler with vcpkg :

{
    "version": 2,
    "cmakeMinimumRequired": {
      "major": 3,
      "minor": 20,
      "patch": 0
    },
    "configurePresets": [
        {
            "name": "unix",
            "displayName": "Default Config",
            "description": "Default build using Make and vcpkg",
            "generator": "Unix Makefiles",
            "binaryDir": "${sourceDir}/build",
            "cacheVariables": {
                "CMAKE_BUILD_TYPE": "Release",
                "CMAKE_TOOLCHAIN_FILE": "${sourceDir}/vcpkg/scripts/buildsystems/vcpkg.cmake"
            }
        },
            {
            "name": "msvc",
            "displayName": "Default MSVC",
            "description": "Default build using Visual Studio and vcpkg",
            "generator": "Visual Studio 16 2019",
            "binaryDir": "${sourceDir}/build",
            "cacheVariables": {
            "CMAKE_TOOLCHAIN_FILE": "${sourceDir}/vcpkg/scripts/buildsystems/vcpkg.cmake"
            }
        },
        {
            "name": "mingw",
            "displayName": "Default MinGW",
            "description": "Default build using MinGW and vcpkg",
            "generator": "MinGW Makefiles",
            "binaryDir": "${sourceDir}/build",
            "cacheVariables": {
            "CMAKE_TOOLCHAIN_FILE": "${sourceDir}/vcpkg/scripts/buildsystems/vcpkg.cmake"
            }
        }
    ]
}

对于项目的规范,安装了vulkan SDK,我使用的是CMAKE 20.05,github上最新的VCPKG项目.除了 VULKAN 之外,我的所有库都是该项目的子模块,并且我安装了 Visual Studio 构建工具 2019.

For the specification of the project, the vulkan SDK is installed, i use CMAKE 20.05, the latest VCPKG project on github. All my libs except VULKAN are submodule of the project, and i have visual studio build tools 2019 installed.

我不想使用 Visual Studio,所以我使用 mingw 作为生成器.

I don't want to use visual studio that why i use mingw as a generator.

如果您需要有关该项目的更多信息,可以在此处的 github 上找到:

If you need more information about the project, you can find it on github here :

https://github.com/real2k/ManiaEngine

提前致谢

推荐答案

您使用的是 mingw x86 工具链,而错误消息中的配置文件适用于 x64,因此被拒绝.

You’re using a mingw x86 toolchain, while the config file from the error message is for x64, so it was rejected.

这篇关于Vcpkg 不能在带有 mingw 的 Windows 上工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-14 04:16