我正在尝试构建一些在Ubuntu中使用EVP_ *函数的代码,但是当我构建时,我得到了可怕的“未定义引用”错误。
我使用的是Ubuntu 11.10。
以下是我编译的方式:
g++ -lcrypto -lssl *.cpp -o IOService
[...]
crypto.cpp:(.text+0x8): undefined reference to `EVP_md5'
[...]
cpp文件包括openssl / evp.h。
我已经安装了libssl1.0.0-dbg软件包,但这些库安装在/ usr / lib / debug / lib / i386-linux-gnu /中我的链接器似乎找不到它们。我尝试了软链接和复制.so文件,但没有用(我觉得这不是可行的方法)。
答案 0 :(得分:3)
ld是一个单向链接器,这意味着您必须在使用它们的目标文件之后添加库:g++ *.cpp -o IOService -lcrypto
(我认为如果您只需要的话,则不需要libssl MD5)