为什么链接 OpenSSL 时会出现“未定义引用”错误?

为什么链接 OpenSSL 时会出现“未定义引用”错误?

我的编译过程会出现如下错误

..undefined reference to `BN_cmp'

尽管我包括<openssl/bn.h>

然后运行 gcc -lssl -lcrypto test.c -o test

有人可以帮忙吗?(openssl libssl1.0.0,libssl-dev 已安装)

答案1

解决方案很简单,只需-l结尾

gcc test.c -o test -lssl -lcrypto

顺序很重要,因为ldUbuntu 11.04 默认使用-as-needed开关调用,所以依赖于其他库的文件/库必须在这些其他库之前,即test.c需要libcrypto,所以它必须在之前-lcrypto

有关详细信息,请参阅For more information, seeNatty Narwhal 中的工具链转换

相关内容