序文
最近、クロスプラットフォーム開発で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とのみ互換性があります
.