为了在Windows 10上集成vcpkg和Qt,我尝试遵循这个指南:
https://www.qt.io/blog/qt-creator-cmake-package-manager-auto-setup
目标是在Qt项目中使用来自vcpkg的lib。
不幸的是,find_package无法工作。使用此CMakeLists.txt:
cmake_minimum_required(VERSION 3.5)
project(TESTvcpkg LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
add_executable(TESTvcpkg main.cpp)
find_package(wt REQUIRED)
target_link_libraries(TESTvcpkg PRIVATE wt::wt)我知道这个错误:
8: error: Target "TESTvcpkg" links to target "wt::wt" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing?
如果我从命令提示符运行vcpkg list,就会得到预期的列表。所以环境变量应该没问题。
指南谈到了vcpkg.json文件,但我不清楚我必须把它放在哪里;我把它放在项目文件夹中:
{“名称”:"TESTvcpkg",“版本-字符串”:"0.0.1",“依赖关系”:"wt“}
我在Qt的项目树中有auto-setup.cmake。最后一行与vcpkg相关:
#
# vcpkg
#
macro(qtc_auto_setup_vcpkg)
if (EXISTS "${CMAKE_SOURCE_DIR}/vcpkg.json" AND NOT QT_CREATOR_SKIP_VCPKG_SETUP)
option(QT_CREATOR_SKIP_VCPKG_SETUP "Skip Qt Creator's vcpkg package manager auto-setup" OFF)
find_program(vcpkg_program vcpkg)
if (NOT vcpkg_program)
message(WARNING "Qt Creator: vcpkg executable not found. "
"Package manager auto-setup will be skipped. "
"To disable this warning set QT_CREATOR_SKIP_VCPKG_SETUP to ON.")
return()
endif()
get_filename_component(vpkg_root ${vcpkg_program} DIRECTORY)
if (NOT EXISTS "${CMAKE_BINARY_DIR}/vcpkg-dependencies/toolchain.cmake")
message(STATUS "Qt Creator: vcpkg package manager auto-setup. "
"Skip this step by setting QT_CREATOR_SKIP_VCPKG_SETUP to ON.")
file(WRITE "${CMAKE_BINARY_DIR}/vcpkg-dependencies/toolchain.cmake" "
set(CMAKE_C_COMPILER \"${CMAKE_C_COMPILER}\")
set(CMAKE_CXX_COMPILER \"${CMAKE_CXX_COMPILER}\")
")
if (CMAKE_TOOLCHAIN_FILE AND NOT
CMAKE_TOOLCHAIN_FILE STREQUAL "${CMAKE_BINARY_DIR}/vcpkg-dependencies/toolchain.cmake")
file(APPEND "${CMAKE_BINARY_DIR}/vcpkg-dependencies/toolchain.cmake"
"include(\"${CMAKE_TOOLCHAIN_FILE}\")\n")
endif()
if (VCPKG_TARGET_TRIPLET)
set(vcpkg_triplet ${VCPKG_TARGET_TRIPLET})
else()
if (WIN32)
set(vcpkg_triplet x64-mingw-static)
if (CMAKE_CXX_COMPILER MATCHES "cl.exe")
set(vcpkg_triplet x64-windows)
endif()
elseif(APPLE)
set(vcpkg_triplet x64-osx)
else()
set(vcpkg_triplet x64-linux)
endif()
endif()
file(APPEND "${CMAKE_BINARY_DIR}/vcpkg-dependencies/toolchain.cmake" "
set(VCPKG_TARGET_TRIPLET ${vcpkg_triplet})
include(\"${vpkg_root}/scripts/buildsystems/vcpkg.cmake\")
")
endif()
set(CMAKE_TOOLCHAIN_FILE "${CMAKE_BINARY_DIR}/vcpkg-dependencies/toolchain.cmake" CACHE PATH "" FORCE)
endif()
endmacro()
qtc_auto_setup_vcpkg()有什么需要我改变的吗?
为了获得Wt,我使用了:vcpkg install wt:x64-windows三重奏。
Qt创建者中的工具包使用Microsoft Visual C++编译器(AMD64)。
编辑:更改这些参数,示例https://www.qt.io/blog/qt-creator-cmake-package-manager-auto-setup似乎有效:Qt造物主截图
https://stackoverflow.com/questions/69916940
复制相似问题