2

这是我的第一个openssl 套接字程序

参考这个链接

首先我用 gcc -g server.c -o server编译

但得到这个错误

/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/../../../crt1.o: 在函数_start': (.text+0x18): undefined reference tomain' /tmp/ccxiY18C.o: 在函数tcp_listen': /home/usr/Desktop/c-examples/server.c:11: undefined reference toerr_exit ' /home/usr/Desktop/c-examples/server.c:20: 未定义对berr_exit' /tmp/ccxiY18C.o: In functionload_dh_params 的引用': /home/usr/Desktop/c-examples/server.c:33: 未定义对BIO_new_file' /home/usr/Desktop/c-examples/server.c:34: undefined reference toberr_exit 的引用' /home/usr /Desktop/c-examples/server.c:36:未定义对PEM_read_bio_DHparams' /home/usr/Desktop/c-examples/server.c:37: undefined reference toBIO_free 的引用' /home/usr/Desktop/c-examples/server.c:38:未定义对SSL_CTX_ctrl' /home/usr/Desktop/c-examples/server.c:39: undefined reference toberr_exit 的引用' /tmp/ccxiY18C.o:在函数generate_eph_rsa_key': /home/usr/Desktop/c-examples/server.c:47: undefined reference toRSA_generate_key ' /home/usr/Desktop/c-examples/server.c:49: 未定义对SSL_CTX_ctrl' /home/usr/Desktop/c-examples/server.c:50: undefined reference toberr_exit 的引用' /home/usr/Desktop/c-examples/server.c:52: 未定义对 `RSA_free' 的引用

然后我用 gcc -g server.c -o server -lssl -lcrypt编译它

它给

/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/../../../crt1.o: 在函数_start': (.text+0x18): undefined reference tomain' /tmp/ccPlisKL.o: 在函数tcp_listen': /home/usr/Desktop/c-examples/server.c:11: undefined reference toerr_exit ' /home/usr/Desktop/c-examples/server.c:20: 未定义对berr_exit' /tmp/ccPlisKL.o: In functionload_dh_params 的引用': /home/usr/Desktop/c-examples/server.c:34: 未定义对berr_exit' /home/usr/Desktop/c-examples/server.c:39: undefined reference toberr_exit 的引用' /tmp/ccPlisKL .o:在函数generate_eph_rsa_key': /home/usr/Desktop/c-examples/server.c:50: undefined reference toberr_exit'collect2:ld返回1退出状态

我该如何克服这个问题..请给我一个解决方案..

4

1 回答 1

1

-lcrypto,不是-lcrypt。只需添加o

于 2013-04-08T20:53:08.320 回答