使用OpenSSL编译DES程序

时间:2014-08-21 13:42:51

标签: c

在使用ubuntu上的OpenSSL项目编译我的C程序进行DES加密/解密时遇到了问题。编译命令是:

gcc -o des_cbc des_cbc.c -lcrypt

我收到了以下错误:

在函数main'中:

des_cbc.c:(.text+0x1fb): undefined reference to `DES_set_key_checked'
des_cbc.c:(.text+0x283): undefined reference to `DES_encrypt1'
des_cbc.c:(.text+0x2da): undefined reference to `DES_encrypt1'
collect2: ld returned 1 exit status

1 个答案:

答案 0 :(得分:1)

您可能需要添加-lssl标记...让我阅读库的nm输出以查看这些函数的位置...

修改

以下是我在系统中看到的内容,您不应该需要-lssl标记,因为符号显示在libcrypto库中...

nm /usr/lib/libcrypto.dylib | grep DES_set_key_checked
000000000008c9d0 T _DES_set_key_checked

nm programing/src/openssl/libcrypto-1.0.0e.a | grep DES_set_key_checked
0000000000000340 T _DES_set_key_checked
0000000000000f00 S _DES_set_key_checked.eh

但您的版本可能缺少这些符号,因为它们故意不会编译到库中。