我正在创建一个简单的测试 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 作为生成器时,我没有任何问题。
标题和问题描述与vcpkg无关
-Ax64
不适用于 Ninja,它适用于 Visual Studio *
发电机。使用 -G "Visual Studio 17 2022"
或其他任何内容,或者从 cmake 调用中删除 -Ax64
。