在CLion中使用cmake配置openssl库的开发环境是有一些不同的,首先是安装时,注意要选择将库安装到bin目录中
然后在安装完成后,找到安装的bin目录,找到名字带有libssl和libcrypto的两个动态库,分别复制一个,命名为libssl.dll和libcrypto.dll,最后在环境变量的path中添加这个bin目录。
接着是CLion中的cmake配置内容
cmake_minimum_required(VERSION 3.20)
project(studyOpenssl)
set(CMAKE_CXX_STANDARD 17)
# 设置openssl的安装位置
set(opensslDir "D:/DevelopTools/Environment/OpenSSL-Win64")
# 设置头文件位置和动态库位置
set(INC_DIR ${opensslDir}/include)
set(LINK_DIR ${opensslDir}/bin)
# 使头文件可访问
include_directories(${INC_DIR})
# 指定动态库路径
link_directories(${LINK_DIR})
# 添加需要链接的库
link_libraries(ssl crypto)
add_executable(studyOpenssl main.cpp)
# 将可执行文件链接到库
target_link_libraries(studyOpenssl ssl)
最后献上一个MD5摘要的简单代码(默认长度32位)
#include <iostream>
#include <openssl/evp.h>
#include <cstring>
using namespace std;
int main() {
const char* str = "hello world";
unsigned char md[33];
EVP_MD_CTX* ctx = EVP_MD_CTX_new();
EVP_MD_CTX_init(ctx);
EVP_DigestInit(ctx, EVP_md5());
EVP_DigestUpdate(ctx, str, strlen(str));
unsigned int len;
EVP_DigestFinal(ctx, md, &len);
for (int i = 0; i < len; ++i) {
printf("%02X",md[i]);
}
return 0;
}