cmake识别不到vcpkg安装的包的解决(以libssh为例)
承接上篇 vcpkg 跨平台的c/c++库包管理工具(以libssh为例) - 夕西行 - 博客园
vcpkg安装libssh后,vs2022创建的cmake项目竟然不能find_package到libssh
此方法也不行 set(CMAKE_TOOLCHAIN_FILE "$ENV{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake" CACHE STRING "")
最后按传统方式,指定搜索目录,VS2022创建Qt项目
![]()
不勾选,这样源代码在一个文件夹中,比较干净
![]()
选择CMake构建
![]()
CMakeLists.txt如下:
cmake_minimum_required(VERSION 3.20) #最低CMake版本 set(CMAKE_CXX_STANDARD 17) #语言及版本 C++17 set(CMAKE_CXX_STANDARD_REQUIRED ON) #强制要求编译器支持 C++17 add_definitions("-DUNICODE" "-D_UNICODE") #Unicode字符集 set(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../build/${CMAKE_BUILD_TYPE})#exe生成位置。CMAKE_CURRENT_SOURCE_DIR指CMakeLists.txt所在的路径 set(CMAKE_INCLUDE_CURRENT_DIR ON) #CMakeLists.txt文件所在目录和构建目录(通常是 build 目录下的子目录)添加到头文件搜索路径中 #项目名 project(Win2ArmTool LANGUAGES CXX) #指定查找vcpkg包的路径 set(CMAKE_PREFIX_PATH "D:/vcpkg/installed/x64-windows") find_package(libssh REQUIRED)#查找libssh包 # Qt相关 set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) find_package(Qt5 COMPONENTS Widgets REQUIRED)#查找依赖的Qt文件 #文件、链接 add_executable(${PROJECT_NAME} main.cpp win2armtool.ui win2armtool.h win2armtool.cpp ) target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Widgets ssh)
另外注意:包名是libssh,但是lib文件是ssh.lib。所以上述黄色处写的ssh

自己在文件中 #include <libssh/libssh.h> 观察是否报找不到

浙公网安备 33010602011771号