以libssh2为例说明如何在命令行中使用vcpkg
准备
2、安装libssh2
> vcpkg install libssh2:x64-windows
代码编写
准备
1、创建目录libssh2_test
。 我的完整目录是C:\Users\oceanstar\source\repos\libssh2_test
cmake_test.h
#pragma once
#include <iostream>
cmake_test.cpp
#include <libssh2.h>
#include <libssh2_sftp.h>
#include <sys/types.h>
#include <fcntl.h>
#include <errno.h>
#include <stdio.h>
#include <ctype.h>
int main(int argc, char* argv[])
{
if (!libssh2_version(LIBSSH2_VERSION_NUM)) {
fprintf(stderr, "Runtime libssh2 version too old!");
exit(1);
}
printf("libssh2 version: %s", libssh2_version(0));
return 0;
}
方法一
CMakeLists.txt:
cmake_minimum_required (VERSION 3.8)
project ("cmake_test")
cmake_minimum_required (VERSION 3.8)
# 将源代码添加到此项目的可执行文件。
add_executable (cmake_test "cmake_test.cpp" "cmake_test.h")
# TODO: 如有需要,请添加测试并安装目标。
find_package(Libssh2 CONFIG REQUIRED)
target_link_libraries(cmake_test PRIVATE Libssh2::libssh2)
打开PowerShell(注意一定要是PowerShell,Cmd没有用),进入C:/Users/oceanstar/source/repos/libssh2_test/build,执行如下命令:cmake .. -DCMAKE_TOOLCHAIN_FILE=C:/Users/oceanstar/vcpkg/win/vcpkg/scripts/buildsystems/vcpkg.cmake
成功。
方法二
CMakeLists.txt:(这里需要注意的是,设置CMAKE_TOOLCHAIN_FILE要在project()命令之前)
cmake_minimum_required (VERSION 3.8)
SET(CMAKE_TOOLCHAIN_FILE "C:/Users/oceanstar/vcpkg/win/vcpkg/scripts/buildsystems/vcpkg.cmake")
project ("cmake_test")
cmake_minimum_required (VERSION 3.8)
# 将源代码添加到此项目的可执行文件。
add_executable (cmake_test "cmake_test.cpp" "cmake_test.h")
# TODO: 如有需要,请添加测试并安装目标。
find_package(Libssh2 CONFIG REQUIRED)
target_link_libraries(cmake_test PRIVATE Libssh2::libssh2)
打开PowerShell(注意一定要是PowerShell,Cmd没有用),进入C:/Users/oceanstar/source/repos/libssh2_test/build,执行如下命令:cmake ..