collect2:错误:ld返回了

时间:2018-11-08 17:03:37

标签: c makefile patch

我正尝试使用两个github存储库,如下所示:

https://github.com/markoneill/ssa-daemon

https://github.com/markoneill/ssa

当尝试在ssa-daemon目录中执行“ build-client-auth.sh”时,遇到了此错误。另外,为了使故障排除变得容易,我进入“ build-client-auth.sh”,并在第72行接受了一条命令,该命令给我一个错误,即“ make clientauth”,如下所示。

[eli@localhost ssa-daemon]$ make clientauth

make -C ./qrdisplay

make[1]: Entering directory '/home/eli/csci400/ssa-daemon/qrdisplay'


make[1]: 'bin/qrPopUp' is up to date.

make[1]: Leaving directory '/home/eli/csci400/ssa-daemon/qrdisplay'

gcc hashmap.o netlink.o hashmap_str.o tls_wrapper.o config.o issue_cert.o 

daemon.o main.o self_sign.o openssl_compat.o csr_daemon.o rfcomm_client.o nsd.o 

log.o rfcomm_server.o queue.o notification.o tb_connector.o auth_daemon.o -o 

tls_wrapper -Llibevent/lib -Lopenssl/lib -Wl,-rpath -Wl,libevent/lib -Wl,-rpath 

-Wl,openssl/lib -lpthread pkg-config --libs libconfig libevent_openssl libnl-

genl-3.0 libnotify avahi-client openssl

/usr/bin/ld: rfcomm_client.o: in function main': /home/eli/csci400/ssa-

daemon/rfcomm_client.c:35: multiple definition of main'; 

main.o:/home/eli/csci400/ssa-daemon/main.c:61: first defined here

/usr/bin/ld: rfcomm_server.o: in function main': /home/eli/csci400/ssa-

daemon/rfcomm_server.c:15: multiple definition of main'; 

main.o:/home/eli/csci400/ssa-daemon/main.c:61: first defined here

collect2: error: ld returned 1 exit status

make: *** [Makefile:65: clientauth] Error 1

感谢Kuchara,他说同时删除了rfcomm_client.c和rfcomm_server.c,所以我能够通过上面的错误。但是,我收到一个新错误,如下所示:

完成

构建自定义sslsplit

克隆到“ sslsplit” ...

远程:枚举对象:155,已完成。

远程:计数对象:已完成100%(155/155)。

远程:压缩对象:完成100%(110/110)

远程:总计4050(增量80),可重复使用的106(增量43),可重复使用的包装3895

接收对象:100%(4050/4050),1.59 MiB |已完成4.92 MiB / s。

解析增量:已完成100%(2885/2885)。

0001-SSA-patch.patch:147:尾随空白。

错误:补丁失败:pxyconn.c:936

错误:pxyconn.c:补丁不适用

================================================ ==========================

所以,我所做的是查看发生错误的部分的构建脚本,并看到了以下内容:

回显“正在构建自定义sslsplit”

git clone https://github.com/droe/sslsplit

cd sslsplit

cp ../extras/sslsplit/0001-SSA-patch.patch。

cp ../extras/sslsplit/ca.crt。

cp ../extras/sslsplit/ca.key。

cp ../extras/sslsplit/start.sh。

cp ../extras/sslsplit/firewallOn.sh。

git apply 0001-SSA-patch.patch

制作

cd ..

回声“完成”

所以,我认为“ git apply 0001-SSA-patch.patch”给出了错误,但是我该如何解决?

2 个答案:

答案 0 :(得分:0)

尝试查看此修订版本:6955368275b4372ebd0b7a125de626808a7e5aef

根据git日志,有问题的文件似乎是一些测试代码,这些代码最近已添加: https://github.com/markoneill/ssa-daemon/commit/d5a94cb4409dd27e4478b4bba2413dfae1c70169

顺便说一句,您遇到的失败是我通常不鼓励使用通配符的原因。 :-)

答案 1 :(得分:0)

该修补程序无法正常工作,因此我手动应用了该修补程序,并且可以正常工作!