CLion上开发OpenSSL项目的配置
1. 编译OpenSSL库
首先在OpenSSL官网下载源码,然后进入到openssl目录,执行配置命令和编译命令。
git clone https://github.com/openssl/openssl.git
执行配置命令 ./Configure 和编译命令 make,执行配置命令 ./Configure 的时候,可以配置路径和环境变量,也可以不配置,选择其中一条执行即可。执行编译命令 make的时候,可能会涉及到权限不够的情况,需要加 sudo 提升权限。
cd openssl
./Configure
./Configure --prefix=/youpath/sslx --openssldir=/youpath/sslx
./Configure --prefix=/youpath/sslx --openssldir=/youpath/sslx '-Wl,-rpath,$(LIBRPATH)'
make install
sudo make install
2. Clion上开发项目
关于Clion的环境配置参考Clion安装和配置,不再赘述。
创建C语言项目,修改CMakeLists.txt文件的配置,将OpenSSL加入到项目中。在 OPENSSL_ROOT_DIR 配置OpenSSL库文件路径,如果添加了环境变量就可以直接查询。
cmake_minimum_required(VERSION 4.0)
project(openssltest C)
set(CMAKE_C_STANDARD 99)
# 设置OpenSSL路径(使用Homebrew的安装路径)
set(OPENSSL_ROOT_DIR "/youpath/sslx") # Intel Mac
# set(OPENSSL_ROOT_DIR "/opt/homebrew/opt/openssl") # Apple Silicon Mac
# 告诉CMake在哪里查找
find_package(OpenSSL REQUIRED)
if(OpenSSL_FOUND)
message(STATUS "Found OpenSSL ${OPENSSL_VERSION}")
message(STATUS "Include dir: ${OPENSSL_INCLUDE_DIR}")
message(STATUS "Libraries: ${OPENSSL_LIBRARIES}")
else()
message(FATAL_ERROR "OpenSSL not found")
endif()
add_executable(openssltest main.c)
# 现代CMake方式:使用导入的目标
target_link_libraries(openssltest OpenSSL::SSL OpenSSL::Crypto)
在 main.c 中添加测试项目。
#include <stdio.h>
#include <openssl/evp.h>
#include <openssl/ssl.h>
int main() {
printf("OpenSSL测试程序\n");
// 检查OpenSSL版本
printf("OpenSSL版本: %s\n", OpenSSL_version(OPENSSL_VERSION));
// 简单的摘要测试
EVP_MD_CTX *mdctx;
const EVP_MD *md;
OpenSSL_add_all_digests();
md = EVP_get_digestbyname("SHA256");
if (!md) {
printf("未知的摘要算法\n");
return 1;
}
mdctx = EVP_MD_CTX_new();
if (!mdctx) {
printf("创建上下文失败\n");
return 1;
}
if (EVP_DigestInit_ex(mdctx, md, NULL) != 1) {
printf("初始化摘要失败\n");
EVP_MD_CTX_free(mdctx);
return 1;
}
printf("OpenSSL初始化成功!\n");
EVP_MD_CTX_free(mdctx);
EVP_cleanup();
return 0;
}