如何在Windows 10的CLion中构建、安装并使用Crypto++ 8.6.0?
Windows 10 CLion MinGW 环境配置 Crypto++ 8.6.0 方案
编译适配MinGW的Crypto++静态库
- 下载Crypto++ 8.6.0官方源码,解压到无中文、无空格的本地路径(例如
C:\dev\cryptopp860) - 打开和CLion项目使用的完全一致的MinGW终端,进入源码解压目录,执行编译命令:
mingw32-make static -j8
- 编译完成后,源码目录会生成
libcryptopp.a静态库文件,所有.h后缀的文件为所需头文件。
项目CMake配置
你之前链接报错的核心原因是没有给CMake指定头文件、库文件的搜索路径,且可能误用了MSVC编译的.lib文件(MinGW链接器无法识别MSVC生成的静态库),按下面的规则修改CMakeLists.txt即可:
cmake_minimum_required(VERSION 3.15) project(MyApp) set(CMAKE_CXX_STANDARD 17) # 替换为你自己的Crypto++源码路径,或者你将头文件存放到项目内的路径 include_directories(C:/dev/cryptopp860) # 替换为你自己的libcryptopp.a所在的路径 link_directories(C:/dev/cryptopp860) add_executable(MyApp main.cpp) # MinGW下链接libcryptopp.a只需写库名cryptopp,不需要加前缀lib和后缀.a target_link_libraries(MyApp cryptopp)
验证示例
你可以在main.cpp中加入以下代码验证配置是否生效:
#include <iostream> #include <sha.h> #include <hex.h> int main() { CryptoPP::SHA256 hash; byte digest[CryptoPP::SHA256::DIGESTSIZE]; std::string str = "test crypto++"; hash.CalculateDigest(digest, (const byte*)str.c_str(), str.size()); CryptoPP::HexEncoder encoder; std::string output; encoder.Attach(new CryptoPP::StringSink(output)); encoder.Put(digest, sizeof(digest)); encoder.MessageEnd(); std::cout << "SHA256 result: " << output << std::endl; return 0; }
如果正常编译运行输出哈希值,说明配置成功。
内容的提问来源于stack exchange,提问作者RonaldoCodes
相关产品推荐
相关产品推荐

