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 声明

t_pw.c:470:警告:忽略“链接”的返回值,用属性 warn_unused_result 声明

t_pw.c:在函数“t_deletepw”中:

t_pw.c:540:警告:忽略“链接”的返回值,用属性 warn_unused_result 声明

t_pw.c:542:警告:忽略“链接”的返回值,用属性 warn_unused_result 声明

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:警告:忽略“fgets”的返回值,用属性 warn_unused_result 声明

tconf.c:202:警告:忽略“fgets”的返回值,用属性 warn_unused_result 声明

tconf.c:230:警告:忽略“fgets”的返回值,用属性 warn_unused_result 声明

tconf.c:263:警告:忽略“fgets”的返回值,用属性 warn_unused_result 声明

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:警告:忽略“gets”的返回值,用属性 warn_unused_result 声明

clitest.c:53:警告:忽略“gets”的返回值,用属性 warn_unused_result 声明

clitest.c:57:警告:忽略“gets”的返回值,用属性 warn_unused_result 声明

clitest.c:61:警告:忽略'gets'的返回值,用属性warn_unused_result声明 clitest.c:74:警告:忽略'gets'的返回值,用属性warn_unused_result声明

clitest.c:79:警告:忽略'gets'的返回值,用属性warn_unused_result声明

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:警告:忽略“gets”的返回值,用属性 warn_unused_result 声明

srvtest.c:103:警告:忽略“gets”的返回值,用属性 warn_unused_result 声明

srvtest.c:109:警告:忽略'gets'的返回值,用属性warn_unused_result声明 srvtest.c:118:警告:忽略'gets'的返回值,用属性warn_unused_result声明

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:在函数“用法”中:

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 回答