![编译外部应用程序时出错](https://linux22.com/image/926928/%E7%BC%96%E8%AF%91%E5%A4%96%E9%83%A8%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E6%97%B6%E5%87%BA%E9%94%99.png)
我尝试编译一个名为 ip sla responder 的程序(https://github.com/cmouse/ip-sla-responder)我将所有内容复制到了一个临时目录中。
root@srvmwips01:/tmp/ip-sla-responder-master# ls -l
total 128
-rw-r--r-- 1 ipsla ipsla 1072 Nov 9 2018 LICENSE
-rw-r--r-- 1 ipsla ipsla 641 Nov 9 2018 Makefile
-rw-r--r-- 1 ipsla ipsla 3143 Nov 9 2018 README.md
-rw-r--r-- 1 ipsla ipsla 2421 Nov 9 2018 arp.c
-rw-r--r-- 1 ipsla ipsla 8312 Nov 9 2018 cisco.c
-rw-r--r-- 1 ipsla ipsla 1946 Nov 9 2018 ether.c
-rw-r--r-- 1 ipsla ipsla 3229 Nov 9 2018 icmp4.c
-rw-r--r-- 1 ipsla ipsla 2320 Nov 9 2018 icmp6.c
-rw-r--r-- 1 ipsla ipsla 2413 Nov 9 2018 ip.c
-rw-r--r-- 1 ipsla ipsla 2368 Nov 9 2018 ip6.c
-rw-r--r-- 1 ipsla ipsla 3506 Nov 9 2018 junos.c
-rw-r--r-- 1 ipsla ipsla 9323 Nov 9 2018 main.c
-rw-r--r-- 1 ipsla ipsla 2587 Nov 9 2018 pak.c
-rw-r--r-- 1 ipsla ipsla 487 Nov 9 2018 responder.conf.sample
-rw-r--r-- 1 ipsla ipsla 4743 Nov 9 2018 responder.h
-rw-r--r-- 1 ipsla ipsla 33922 Nov 9 2018 test-main.c
-rw-r--r-- 1 ipsla ipsla 1920 Nov 9 2018 udp4.c
-rw-r--r-- 1 ipsla ipsla 1849 Nov 9 2018 udp6.c
-rw-r--r-- 1 ipsla ipsla 3020 Nov 9 2018 utils.c
但是当我想要编译它时,我收到一条错误消息:
root@srvmwips01:/# cd /tmp/ip-sla-responder-master/
root@srvmwips01:/tmp/ip-sla-responder-master# make CC=gcc
gcc -W -Wall -Wno-unused -Wno-unused-parameter -ggdb -O3 -DCONFIGFILE="\"/etc/responder.conf\"" -c -o utils.o utils.c
/bin/sh: 1: gcc: not found
make: *** [Makefile:27: utils.o] Error 127
我安装了全新的 ubuntu LTS 20.04,但似乎不起作用。我安装了以下工具进行编译:
root@srvmwips01:/# apt install make
root@srvmwips01:/# apt install libpcap-dev
我已经尝试了 chown 和 chmod 以确保没有权限问题。手册说我还需要一些东西才能使编译工作:
它需要内核上的 pcap(3) 接口和 AF_PACKET。它还需要 librt 和 libpcap。
但是这些软件包不再能从 apt install 获得。我该如何获得它们?我找到的 libpcap 是一个开发版本。但不确定这是否相同。我读到,有一个先决条件检查命令,它从 apt 商店加载所有必要的模块,但这只适用于托管在那里的应用程序。我通过 github 下载了我的应用程序。我搜索了网站https://packages.ubuntu.com/来查找图书馆,但有些搜索没有结果而其他搜索则返回大量条目。
答案1
您缺少 GCC 编译器和编译所需的其他g++
库gcc
。
您的错误消息清楚地证明了这一点:
/bin/sh: 1: gcc: not found
build-essential
使用安装sudo apt install build-essential
。这将引入g++
、gcc
和编译软件所需的核心基本构建库。