Botan AutoSeeded_RNG初始化失败:未定义引用问题求助
解决Botan AutoSeeded_RNG未定义引用的问题
你遇到的是典型的链接阶段缺失库引用问题——虽然你指定了头文件路径和库的搜索路径,但并没有告诉编译器要实际链接Botan库,所以链接器找不到AutoSeeded_RNG的实现代码。
修复方法:修改编译命令,添加Botan库链接参数
把你的编译命令改成这样:
g++ ecdh.cpp -o ecdh -I/usr/local/include/botan-2/ -L/usr/local/lib/ -lbotan-2
为什么这样能解决?
-I:指定头文件的搜索路径,你已经做对了,编译器能找到botan/auto_rng.h等头文件;-L:指定库文件的搜索路径,告诉链接器去/usr/local/lib/找需要的库;-lbotan-2:这是关键!告诉链接器要链接名为libbotan-2.so(Linux下)的库文件,这样链接器才能找到AutoSeeded_RNG的构造函数、析构函数等实现代码。
如果你的Botan版本不是2(比如3.x),只需要把-lbotan-2改成-lbotan-3即可,但从你的头文件路径botan-2来看,用-lbotan-2是正确的。
内容的提问来源于stack exchange,提问作者Leopolis
相关产品推荐
相关产品推荐

