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> 观察是否报找不到

posted @ 2025-03-15 22:41  夕西行  阅读(1242)  评论(0)    收藏  举报