2012-05-23 65 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 –