无法使用 vcpkg 和 Ninja 构建应用程序

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

我正在创建一个简单的测试 C++ 应用程序,它使用 spdlog 进行日志记录。
我使用 vcpkg 作为包管理器,使用 Ninja 作为生成器和 cmake。
我的包已成功安装在构建文件夹下的项目目录中,但我认为当要构建应用程序时,我会收到一个与 Ninja 相关的错误,我想。
这是我的申请文件:
主.cpp:

#include <spdlog/spdlog.h>

int main()
{
    spdlog::info("Test log");
}

CmakeLists.txt:

cmake_minimum_required(VERSION 3.28)

set(CMAKE_C_COMPILER "C:/MinGW/bin/gcc.exe")
set(CMAKE_CXX_COMPILER "C:/MinGW/bin/g++.exe")

project(TestApp)

find_package(spdlog REQUIRED)

add_executable(TestApp main.cpp)

target_link_libraries(TestApp PRIVATE spdlog::spdlog)

vcpkg.json:

{
  "dependencies": [
    "spdlog"
  ]
}

这是我正在执行的命令:

cmake -G "Ninja" -S . -B build -DCMAKE_TOOLCHAIN_FILE="F:/projects/vcpkg/scripts/buildsystems/vcpkg.cmake"  -Ax64

完成这些步骤后,我收到此错误日志:

-- Running vcpkg install                                 
Detecting compiler hash for triplet x64-windows...
Compiler found: C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.39.33519/bin/Hostx64/x64/cl.exe
The following packages will be built and installed:
  * fmt:[email protected]#2
    spdlog:[email protected]
  * vcpkg-cmake:x64-windows@2024-04-18
  * vcpkg-cmake-config:x64-windows@2022-02-06#1
Additional packages (*) will be modified to complete this operation.
Restored 4 package(s) from C:\Users\h\AppData\Local\vcpkg\archives in 229 ms. Use --debug to see more details.
Installing 1/4 vcpkg-cmake-config:x64-windows@2022-02-06#1...
Elapsed time to handle vcpkg-cmake-config:x64-windows: 3.73 ms
vcpkg-cmake-config:x64-windows package ABI: b8a712261e9443cd39bae6bd0028a3878a661e9bb28f295ecb0143e2805ca720
Installing 2/4 vcpkg-cmake:x64-windows@2024-04-18...
Elapsed time to handle vcpkg-cmake:x64-windows: 10.1 ms
vcpkg-cmake:x64-windows package ABI: ded1630d48dd1567df273733992025b1a68c3d340c5b7dc5cf54318797eeece7
Installing 3/4 fmt:[email protected]#2...
Elapsed time to handle fmt:x64-windows: 14.5 ms
fmt:x64-windows package ABI: 3607a46075b6242cdccdb9413170961d98be188a2868b3893b2eac2dbdaa1ca7
Installing 4/4 spdlog:[email protected]...
Elapsed time to handle spdlog:x64-windows: 36.6 ms
spdlog:x64-windows package ABI: 97c92ae564489470fbd5fab9bd9589c8ea993d43dfefbf7d4f8d8a536c811224
Total install time: 65.1 ms
The package spdlog provides CMake targets:

    find_package(spdlog CONFIG REQUIRED)
    target_link_libraries(main PRIVATE spdlog::spdlog)

    # Or use the header-only version
    find_package(spdlog CONFIG REQUIRED)
    target_link_libraries(main PRIVATE spdlog::spdlog_header_only)

-- Running vcpkg install - done
CMake Error at CMakeLists.txt:6 (project):
  Generator

    Ninja

  does not support platform specification, but platform

    x64

  was specified.


-- Configuring incomplete, errors occurred!

如您所见,我的软件包已安装,但我在构建时遇到问题(spdlog 文件位于构建目录下)。
注意事项:
当我使用 Visual studio 17 2022 作为生成器时,我没有任何问题。

c++ cmake g++ vcpkg ninja
1个回答
0
投票

标题和问题描述与vcpkg无关

-Ax64
不适用于 Ninja,它适用于
Visual Studio *
发电机。使用
-G "Visual Studio 17 2022"
或其他任何内容,或者从 cmake 调用中删除
-Ax64

© www.soinside.com 2019 - 2024. All rights reserved.