对openssl编写cmake生成Visual Studio 工程
-
首先下载并安装CMake工具,下载地址:https://cmake.org/download/
-
下载openssl源代码,下载地址:https://www.openssl.org/source/
-
在openssl源代码目录下创建一个名为build的文件夹,作为编译输出目录。
-
在build目录下创建一个名为CMakeLists.txt的文件,输入以下内容:
cmake_minimum_required(VERSION 3.10)
project(OpenSSL)
set(OPENSSL_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR})
set(OPENSSL_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include)
set(OPENSSL_LIBRARY_DIR ${CMAKE_CURRENT_SOURCE_DIR}/lib)
set(OPENSSL_CRYPTO_LIBRARY ${OPENSSL_LIBRARY_DIR}/libcrypto.lib)
set(OPENSSL_SSL_LIBRARY ${OPENSSL_LIBRARY_DIR}/libssl.lib)
include_directories(${OPENSSL_INCLUDE_DIR})
link_directories(${OPENSSL_LIBRARY_DIR})
add_library(crypto STATIC IMPORTED)
set_property(TARGET crypto PROPERTY IMPORTED_LOCATION ${OPENSSL_CRYPTO_LIBRARY})
add_library(ssl STATIC IMPORTED)
set_property(TARGET ssl PROPERTY IMPORTED_LOCATION ${OPENSSL_SSL_LIBRARY})
add_executable(openssl_test main.c)
target_link_libraries(openssl_test crypto ssl)
- 创建一个名为main.c的文件,输入以下内容:
#include <stdio.h>
#include <openssl/rsa.h>
#include <openssl/evp.h>
int main(void)
{
EVP_PKEY* pkey = EVP_PKEY_new();
RSA* rsa = RSA_new();
BIGNUM* e = BN_new();
BN_set_word(e, RSA_F4);
RSA_generate_key_ex(rsa, 2048, e, NULL);
EVP_PKEY_set1_RSA(pkey, rsa);
RSA_free(rsa);
BN_free(e);
EVP_PKEY_free(pkey);
printf("Success\n");
return 0;
}
- 打开命令行窗口,执行以下命令:
cd openssl_source_directory/build
cmake -G "Visual Studio 16 2019" ..
其中openssl_source_directory为openssl源代码目录。
-
执行完上述命令后,会在build目录下生成Visual Studio工程文件。
-
打开Visual Studio工程文件,编译并运行程序,验证openssl库是否可用。
原文地址: https://www.cveoy.top/t/topic/b7qe 著作权归作者所有。请勿转载和采集!