Debian 上对 EVP_idea_ecb 的未定义引用

Undefined reference to EVP_idea_ecb on Debian

我有以下代码:

#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。

一行一行发生了什么:

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

libss.so.2.0 来自 libss2 命令行界面库包也无济于事。