编译外部应用程序时出错

编译外部应用程序时出错

我尝试编译一个名为 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和编译软件所需的核心基本构建库。

相关内容