VSCode使用CMake添加vcpkg的OpenSSL包

前言

最近用着Windows+VSCode进行跨平台开发,vcpkg下载好OpenSSL生成的时候CMake就找不到了

CMakeLists.txt

# SSL
find_package(OpenSSL REQUIRED)
target_link_directories(${
    
    PROJECT_NAME} PRIVATE ${
    
    OPENSSL_CRYPTO_LIBRARY})
target_include_directories(${
    
    PROJECT_NAME} PRIVATE ${
    
    OPENSSL_INCLUDE_DIR})
target_link_libraries(${
    
    PROJECT_NAME} PRIVATE OpenSSL::SSL OpenSSL::Crypto)

日志提示

CMake Error at E:/cmake/share/cmake-3.25/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
[cmake]   Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the
[cmake]   system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY
[cmake]   OPENSSL_INCLUDE_DIR)

检查安装

PS C:\Users\NueXini> vcpkg list
openssl:x64-windows                               3.0.5#4             OpenSSL is an open source project that provides ...
vcpkg-cmake-config:x64-windows                    2022-02-06#1
vcpkg-cmake-get-vars:x64-windows                  2022-05-10#1
vcpkg-cmake:x64-windows                           2022-07-18

确保vcpkg已经把openssl下载并安装了,然后在 CMakeLists.txt 中添加手动设置一下路径

set(CMAKE_TOOLCHAIN_FILE E:/vcpkg/scripts/buildsystems/vcpkg.cmake)
set(OPENSSL_ROOT_DIR E:/vcpkg/installed/x64-windows)

find_package(OpenSSL REQUIRED)
target_link_directories(${
    
    PROJECT_NAME} PRIVATE ${
    
    OPENSSL_CRYPTO_LIBRARY})
target_include_directories(${
    
    PROJECT_NAME} PRIVATE ${
    
    OPENSSL_INCLUDE_DIR})
target_link_libraries(${
    
    PROJECT_NAME} PRIVATE OpenSSL::SSL OpenSSL::Crypto)

设置Vcpkg环境变量


建议设置VCPKG_ROOT的环境变量,这样就不需要在单独写环境了

下面是VCPKG其他可选的环境变量,可以根据自己需求来设置

Options:
  --triplet=<t>                   Specify the target architecture triplet. See 'vcpkg help triplet'.
                                  (default: 'VCPKG_DEFAULT_TRIPLET')
  --host-triplet=<t>              Specify the host architecture triplet. See 'vcpkg help triplet'.
                                  (default: 'VCPKG_DEFAULT_HOST_TRIPLET')
  --overlay-ports=<path>          Specify directories to be used when searching for ports.
                                  (also: 'VCPKG_OVERLAY_PORTS')
  --overlay-triplets=<path>       Specifiy directories containing triplets files.
                                  (also: 'VCPKG_OVERLAY_TRIPLETS')
  --binarysource=<path>           Add sources for binary caching. See 'vcpkg help binarycaching'.
  --x-asset-sources=<path>        Add sources for asset caching. See 'vcpkg help assetcaching'.
  --downloads-root=<path>         Specify the downloads root directory.
                                  (default: VCPKG_DOWNLOADS)
  --vcpkg-root=<path>             Specify the vcpkg root directory.
                                  (default: 'VCPKG_ROOT')

VSCode手动设置

打开VSCode的设置,找到cmake.buildEnvironment,手动添加环境变量


引用

在代码中只需要 include 进去就好

#include <openssl/ssl.h>

其他方法

下载完把包解压,设置环境变量,或者手动设置目录也可以,有些库对openssl有要求,选择对应版本下载
像cpp-httplib只兼容opensslde 1.1.1 或者 3.0.0

猜你喜欢

转载自blog.csdn.net/a924282761/article/details/129927301