0

srp-2.1.2パッケージをダウンロードして、ubuntuでコンパイルしてみました。ただし、完全にコンパイルされるわけではありません。ubuntuでコンパイルする方法を教えてください。

エラー-

root @ ubuntu:〜/ Desktop / srp-2.1.2 / libsrp#make

gcc-DHAVE_CONFIG_H-I。-私。-私。-fPIC -O -c t_client.c

gcc-DHAVE_CONFIG_H-I。-私。-私。-fPIC -O -c t_conf.c

gcc-DHAVE_CONFIG_H-I。-私。-私。-fPIC -O -c t_conv.c

gcc-DHAVE_CONFIG_H-I。-私。-私。-fPIC -O -c t_getpass.c

gcc-DHAVE_CONFIG_H-I。-私。-私。-fPIC -O -c t_sha.c

gcc-DHAVE_CONFIG_H-I。-私。-私。-fPIC -O -c t_math.c

gcc-DHAVE_CONFIG_H-I。-私。-私。-fPIC -O -c t_misc.c

gcc-DHAVE_CONFIG_H-I。-私。-私。-fPIC -O -c t_pw.c t_pw.c:関数't_changepw'内:

t_pw.c:468:警告:属性warn_unused_resultで宣言された「link」の戻り値を無視します

t_pw.c:470:警告:属性warn_unused_resultで宣言された「link」の戻り値を無視します

t_pw.c:関数't_deletepw':

t_pw.c:540:警告:属性warn_unused_resultで宣言された「link」の戻り値を無視します

t_pw.c:542:警告:属性warn_unused_resultで宣言された「link」の戻り値を無視します

gcc-DHAVE_CONFIG_H-I。-私。-私。-fPIC -O -c t_read.c

gcc-DHAVE_CONFIG_H-I。-私。-私。-fPIC -O -c t_server.c

gcc-DHAVE_CONFIG_H-I。-私。-私。-fPIC -O -c t_truerand.c

gcc-DHAVE_CONFIG_H-I。-私。-私。-fPIC -O -c cstr.c

cstr.c:24:警告:互換性のないポインタ型からの初期化

cstr.c:24:警告:互換性のないポインタ型からの初期化

gcc-DHAVE_CONFIG_H-I。-私。-私。-fPIC -O -c srp.c

gcc-DHAVE_CONFIG_H-I。-私。-私。-fPIC -O -c rfc2945_client.c

gcc-DHAVE_CONFIG_H-I。-私。-私。-fPIC -O -c rfc2945_server.c

gcc-DHAVE_CONFIG_H-I。-私。-私。-fPIC -O -c srp6_client.c

gcc-DHAVE_CONFIG_H-I。-私。-私。-fPIC -O -c srp6_server.c

gcc-DHAVE_CONFIG_H-I。-私。-私。-fPIC -O -c yp_misc.c

gcc-DHAVE_CONFIG_H-I。-私。-私。-fPIC -O -c yp_tpasswd.c

gcc-DHAVE_CONFIG_H-I。-私。-私。-fPIC -O -c yp_tconf.c

gcc-DHAVE_CONFIG_H-I。-私。-私。-fPIC -O -c nsw_tpasswd.c

gcc-DHAVE_CONFIG_H-I。-私。-私。-fPIC -O -c nsw_tconf.c

gcc-DHAVE_CONFIG_H-I。-私。-私。-fPIC -O -c nsswitch.c

rm -f libsrp.a

ar cru libsrp.a t_client.o t_conf.o t_conv.o t_getpass.o t_sha.o t_math.o t_misc.o t_pw.o

t_read.o t_server.o t_truerand.o cstr.o srp.o rfc2945_client.o rfc2945_server.o

srp6_client.o srp6_server.o yp_misc.o yp_tpasswd.o yp_tconf.o nsw_tpasswd.o nsw_tconf.o

nsswitch.o

ranlib libsrp.a

gcc-DHAVE_CONFIG_H-I。-私。-私。-fPIC -O -c tconf.c

tconf.c:関数'main'内:

tconf.c:188:警告:属性warn_unused_resultで宣言された「fgets」の戻り値を無視します

tconf.c:202:警告:属性warn_unused_resultで宣言された「fgets」の戻り値を無視します

tconf.c:230:警告:属性warn_unused_resultで宣言された「fgets」の戻り値を無視します

tconf.c:263:警告:属性warn_unused_resultで宣言された「fgets」の戻り値を無視します

gcc -fPIC -O -o tconf tconf.o libsrp.a -lcrypto -ldl -lnsl

gcc-DHAVE_CONFIG_H-I。-私。-私。-fPIC -O -c clitest.c

clitest.c:関数'main'内:

clitest.c:51:警告:属性warn_unused_resultで宣言された'gets'の戻り値を無視します

clitest.c:53:警告:属性warn_unused_resultで宣言された'gets'の戻り値を無視します

clitest.c:57:警告:属性warn_unused_resultで宣言された'gets'の戻り値を無視します

clitest.c:61:警告:属性warn_unused_resultで宣言された'gets'の戻り値を無視しますclitest.c:74:警告:属性warn_unused_resultで宣言された'gets'の戻り値を無視します

clitest.c:79:警告:属性warn_unused_resultで宣言された「gets」の戻り値を無視します

gcc -fPIC -O -o clitest clitest.o libsrp.a -lcrypto -ldl -lnsl clitest.o:関数 `main'内:

clitest.c:(。text+0x56):警告: `gets'関数は危険であるため、使用しないでください。

gcc-DHAVE_CONFIG_H-I。-私。-私。-fPIC -O -c srvtest.c

srvtest.c:関数'main'内:

srvtest.c:77:警告:属性warn_unused_resultで宣言された「gets」の戻り値を無視します

srvtest.c:103:警告:属性warn_unused_resultで宣言された「gets」の戻り値を無視します

srvtest.c:109:警告:属性warn_unused_resultで宣言された'gets'の戻り値を無視しますsrvtest.c:118:警告:属性warn_unused_resultで宣言された'gets'の戻り値を無視します

gcc -fPIC -O -o srvtest srvtest.o libsrp.a -lcrypto -ldl -lnsl

srvtest.o:関数 `main'内:

srvtest.c:(。text+0x15a):警告: `gets'関数は危険であるため、使用しないでください。

gcc-DHAVE_CONFIG_H-I。-私。-私。-fPIC -O -c getpwtest.c

gcc -fPIC -O -o getpwtest getpwtest.o libsrp.a -lcrypto -ldl -lnsl

gcc-DHAVE_CONFIG_H-I。-私。-私。-fPIC -O -c srptest.c

gcc -fPIC -O -o srptest srptest.o libsrp.a -lcrypto -ldl -lnsl

gcc-DHAVE_CONFIG_H-I。-私。-私。-fPIC -O -c srpbench.c

gcc -fPIC -O -o srpbench srpbench.o libsrp.a -lcrypto -ldl -lnsl

gcc-DHAVE_CONFIG_H-I。-私。-私。-fPIC -O -c srp6bench.c

srp6bench.c:関数'do_srp6preparam':

srp6bench.c:197:警告:組み込み関数'exit'の互換性のない暗黙の宣言</p>

srp6bench.c:関数'usage'内:

srp6bench.c:214:警告:組み込み関数'exit'の互換性のない暗黙の宣言</p>

srp6bench.c:関数'main'内:

srp6bench.c:246:警告:組み込み関数'exit'の互換性のない暗黙の宣言</p>

gcc -fPIC -O -o srp6bench srp6bench.o libsrp.a -lcrypto -ldl -lnsl `

    -


できるだけ早く問題がどこにあるか教えてください

ありがとう

こんにちはrobsnこの答えをありがとう。

makeを使用してlibsrpをコンパイルした後、libsrp.aを作成します。このlibsrp.aを共有ライブラリとして使用できますか?.dllimportを使用してubuntuのac#ファイルでlibsrpを使用したいのですが。`

4

2 に答える 2

1

この動作を再現できました (最初に投稿された問題、私のコメントを参照してください)。コンパイルするための一時的な解決策は次のとおりです。

  • /usr/include/stdio.h の安全なコピーを作成します

  • 元の stdio.h を編集します。651 行目 (extern _IO_ssize_t getline...) で、「getline」を「parseline」に置き換えます。

  • srp をコンパイルします。

  • 編集を元に戻します。

于 2010-04-12T11:01:06.723 に答える
0

問題にならない警告 (エラーなし) のみが表示されます。完全にコンパイルされませんでしたか?

最後に投稿した行が...

gcc -fPIC -O -o srp6bench srp6bench.o libsrp.a -lcrypto -ldl -lnsl `

...うまくいけば、'srp6bench' というファイルが作成されます。

(回答を投稿して申し訳ありませんが、私の評判では、他の投稿へのコメントはまだ許可されていません。)

于 2010-04-13T12:47:29.493 に答える