如何在Eclipse的C++版本中正确引入并链接Crypto++库?
解决Eclipse C中引入Crypto 7.0.0的配置问题
我太懂这种感受了——在Java版Eclipse里导入库顺风顺水,换到C版本突然就卡壳,毕竟C库的配置逻辑确实要繁琐不少,尤其是Crypto这种需要先编译的本地库。你的Crypto文件夹在桌面,那我就以这个路径为基准,一步步给你捋清楚该怎么配置:
第一步:先编译Crypto++库
和Java的jar包直接能用不一样,C++库必须先编译出静态/动态库文件才能用:
- 打开桌面的
Crypto++ 7.0.0文件夹,找到里面的GNUmakefile(如果你用的是Windows+MinGW/GCC工具链,这个文件就适用;要是用VS工具链,找对应的.sln项目文件) - 打开终端,切换到这个文件夹目录,执行编译命令:
- 编译静态库:
make - 编译动态库:
make dynamic
编译完成后,你会在文件夹里看到libcryptopp.a(静态库)或者libcryptopp.so/libcryptopp.dll(动态库),而所有头文件要么在include子目录,要么直接放在根目录里。
- 编译静态库:
第二步:配置Eclipse C++项目
打开你的Eclipse C++项目,右键项目→Properties(属性),跟着下面的步骤来:
1. 配置头文件包含路径
- 进入
C/C++ General→Paths and Symbols→Includes标签页 - 选中
GCC C++(对应你当前用的工具链),点击Add - 在弹出窗口里选
File system,找到桌面的Crypto++ 7.0.0文件夹,选择头文件所在的目录(如果头文件直接在根目录就选根目录,有include子目录就选它),勾选Add to all configurations后点OK
2. 配置库文件路径
- 还是在
Paths and Symbols里,切换到Library Paths标签页 - 点击
Add,同样通过File system找到Crypto++ 7.0.0文件夹,选择编译后库文件所在的目录(一般就是根目录),勾选Add to all configurations后点OK
3. 配置链接的库文件
- 进入
C/C++ Build→Settings→Tool Settings标签页 - 找到
GCC C++ Linker→Libraries - 在
Libraries (-l)下方点击Add,输入cryptopp(因为库文件名是libcryptopp.a,链接时只需要写去掉前缀lib和后缀的部分),点OK - 要是用动态库,Windows下需要把
libcryptopp.dll复制到项目运行目录,或者添加到系统环境变量;Linux下可以把libcryptopp.so放到/usr/lib,或者设置LD_LIBRARY_PATH环境变量
第三步:测试配置是否生效
写一段简单的测试代码验证一下:
#include <iostream> #include <cryptopp/sha.h> #include <cryptopp/hex.h> #include <cryptopp/filters.h> int main() { std::string input = "Test Crypto++ Configuration"; std::string output; CryptoPP::SHA256 sha256; CryptoPP::StringSource(input, true, new CryptoPP::HashFilter(sha256, new CryptoPP::HexEncoder( new CryptoPP::StringSink(output) ) ) ); std::cout << "SHA256 Hash: " << output << std::endl; return 0; }
如果编译运行正常,能输出对应的哈希值,就说明配置完全没问题了。
要是中途遇到找不到头文件/库文件的报错,先检查路径是否选对,还有库是不是真的编译成功了——毕竟你之前清了所有配置,按这个流程走应该能搞定。
内容的提问来源于stack exchange,提问作者Razmode
相关产品推荐
相关产品推荐

