これは私の最初の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 to
main 内' /tmp/ccxiY18C.o: 関数tcp_listen': /home/usr/Desktop/c-examples/server.c:11: undefined reference to
err_exit 内' /home/usr/Desktop/c-examples/server.c:20: load_dh_params への未定義の参照berr_exit' /tmp/ccxiY18C.o: In function
': /home/usr/Desktop/c-examples/server.c:33: berr_exit への未定義の参照BIO_new_file' /home/usr/Desktop/c-examples/server.c:34: undefined reference to
' /home/usr /Desktop/c-examples/server.c:36: BIO_free への未定義の参照PEM_read_bio_DHparams' /home/usr/Desktop/c-examples/server.c:37: undefined reference to
' /home/usr/Desktop/c-examples/server.c:38: berr_exit への未定義の参照SSL_CTX_ctrl' /home/usr/Desktop/c-examples/server.c:39: undefined reference to
' /tmp/ccxiY18C.o: 関数generate_eph_rsa_key': /home/usr/Desktop/c-examples/server.c:47: undefined reference to
RSA_generate_key 内' /home/usr/Desktop/c-examples/server.c:49: berr_exit への未定義の参照SSL_CTX_ctrl' /home/usr/Desktop/c-examples/server.c:50: undefined reference to
' /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 to
main 内' /tmp/ccPlisKL.o: 関数tcp_listen': /home/usr/Desktop/c-examples/server.c:11: undefined reference to
err_exit 内' /home/usr/Desktop/c-examples/server.c:20: load_dh_params への未定義の参照berr_exit' /tmp/ccPlisKL.o: In function
': /home/usr/Desktop/c-examples/server.c:34: berr_exit への未定義の参照berr_exit' /home/usr/Desktop/c-examples/server.c:39: undefined reference to
' /tmp/ccPlisKL .o: 関数generate_eph_rsa_key': /home/usr/Desktop/c-examples/server.c:50: undefined reference to
berr_exit で collect2: ld が 1 つの終了ステータスを返しました
どうすればこの問題を克服できますか..解決策を教えてください..