我有以下代码:
#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。
答案 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也无济于事。