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 <openssl/ssl.h>

その他の方法

ダウンロード後、パッケージを解凍し、環境変数を設定するか、ディレクトリを手動で設定します.一部のライブラリにはopensslが必要なため、対応するバージョンを選択してダウンロードしてください.たとえば、cpp-httplibはopensslde 1.1.1または3.0.0とのみ互換性があります
.

おすすめ

転載: blog.csdn.net/a924282761/article/details/129927301