在使用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
答案 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
但您的版本可能缺少这些符号,因为它们故意不会编译到库中。