2012-05-23 66 views
3

我试图使用OpenSSL ibaries进行AES解密的简单测试程序。编译器/链接器向我显示一个错误。编译:开发-CPPOpenssl aes.h [链接器错误]未定义的参考

[Linker error] undefined reference to `AES_set_decrypt_key' 
    [Linker error] undefined reference to `AES_decrypt' 

代码:

#include <stdio.h> 
#include <openssl/aes.h> 
int main(){ 
AES_KEY k; 
unsigned char key[]="2641cf97291c6ea02b930a4e2a824990"; 
unsigned char in[]="adc8f4ad114433ffaf4597c9738d257c504db763c29d238aa05bd21e1107809f"; 
unsigned char out[150]; 

AES_set_decrypt_key(key, 256, &k); 
AES_decrypt(in, out, &k); 

printf("%s\n", out); 

} 

TNX

+0

链接器错误意味着编译器(实际上是链接器)找不到该库。 –

+1

您需要链接到OpenSSL库。你在做那个吗? – NPE

+0

不,怎么做? – Aleksa

回答

5

你应该对OpenSSL库链接 - 添加到您的命令行:-lssl -lcrypto

编辑:你可能必须使用-L选项明确指定库位于哪里 - 将-L<openssl_library_directory>添加到该命令以及

+0

假设OP使用g ++或类似 – Attila

+0

他还需要用-L指定路径,就像我放在我的评论中:http://stackoverflow.com/questions/10718418/openssl-aes-h-linker-error-undefined-参考#评论13919875_10718418 – Brady

+0

@布拉迪 - 真我假设使用Linux的地方openssl安装使用apt-get –