我在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
您可能需要添加-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
但是您的版本可能会丢失这些符号,因为它们没有被有意地编译到库中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句