Debian上对EVP_idea_ecb的未定义引用

时间:2015-01-12 13:34:02

标签: gcc openssl debian evp-cipher

我有以下代码:

#include <stdio.h>
#include <stdlib.h>
#include <openssl/evp.h>
int main (int argc, char *argv[]) {
    EVP_CIPHER *cipher;
    EVP_idea_ecb();
}

我知道,这并不多,但它应该在没有投诉的情况下编译,但我得到了

gcc Testfile.c -lssl -lcrypto
Testfile.c:(.text+0xec): undefined reference to `EVP_idea_ecb'

gcc Testfile.c -lss
/usr/bin/ld: /tmp/ccgbkhFA.o: undefined reference to symbol 'EVP_CIPHER_iv_length@@OPENSSL_1.0.0'
//usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0: error adding symbols: DSO missing from command linel

libssl-dev已安装。任何想法在这里出了什么问题?

我的发行版:x64上的Debian Jessie。

1 个答案:

答案 0 :(得分:2)

一行一行:

gcc Testfile.c -lssl -lcrypto
Testfile.c:(.text+0xec): undefined reference to `EVP_idea_ecb'

Debian Jessie x64的OpenSSL库不包含EVP_idea_ecb。

gcc Testfile.c -lss
/usr/bin/ld: /tmp/ccgbkhFA.o: undefined reference to symbol 'EVP_CIPHER_iv_length@@OPENSSL_1.0.0'
//usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0: error adding symbols: DSO missing from command linel
来自libss2命令行界面库包的libss.so.2.0也无济于事。