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: 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 toRSA_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 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: 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 toberr_exit で collect2: ld が 1 つの終了ステータスを返しました

どうすればこの問題を克服できますか..解決策を教えてください..

4

1 に答える 1

1

-lcryptoはありません-lcrypt。追加するだけですo

于 2013-04-08T20:53:08.320 に答える