Ubuntu24.04 LTS编译DEXP ZH-UTC2网卡驱动Makefile报错:cc不存在
编译DEXP ZH-UTC2 USB以太网适配器驱动报错求助
我使用Ubuntu 24.04 LTS系统,尝试通过make命令编译DEXP ZH-UTC2 USB以太网适配器的驱动,执行后出现报错。
驱动Makefile内容
TARGET = ax_usb_nic KDIR = /lib/modules/$(shell uname -r)/build PWD = $(shell pwd) CFILES = ax_main.c \ ax88179_178a.c \ ax88179a_772d.c EXTRA_CFLAGS = -DEXPORT_SYMTAB -fno-pie ifneq (,$(filter $(SUBLEVEL),14 15 16 17 18 19 20 21)) MDIR = kernel/drivers/usb/net else MDIR = kernel/drivers/net/usb endif $(TARGET)-objs := $(CFILES:.c=.o) obj-m := $(TARGET).o all: make -C $(KDIR) M=$(PWD) modules $(CC) ax88179_programmer.c -o ax88179_programmer #<-- ERROR $(CC) ax88179a_programmer.c -o ax88179a_programmer #$(CC) ax_ioctl.c -o ax_ioctl install: ifneq (,$(wildcard /lib/modules/$(shell uname -r)/$(MDIR)/ax88179_178a.ko)) gzip /lib/modules/$(shell uname -r)/$(MDIR)/ax88179_178a.ko endif make -C $(KDIR) M=$(PWD) INSTALL_MOD_DIR=$(MDIR) modules_install depmod -A clean: make -C $(KDIR) M=$(PWD) clean rm -f ax88179_programmer ax88179a_programmer ax_ioctl
执行make后的错误信息
make -C /lib/modules/6.8.0-31-generic/build M=/home/lelechko/Downloads/dexp-zh-utc2_drajver_100507_30082022/AX88772D-AX88179A-Drive/ASIX_USB_NET_Linux_Driver_v1.0.0_b7_Source/ASIX_USB_NET_Linux_Driver_v1.0.0_Source_b7 modules make[1]: Entering directory '/usr/src/linux-headers-6.8.0-31-generic' warning: the compiler differs from the one used to build the kernel The kernel was built by: x86_64-linux-gnu-gcc-13 (Ubuntu 13.2.0-23ubuntu4) 13.2.0 You are using: gcc-13 (Ubuntu 13.2.0-23ubuntu4) 13.2.0 make[1]: Leaving directory '/usr/src/linux-headers-6.8.0-31-generic' cc ax88179_programmer.c -o ax88179_programmer make: cc: No such file or directory make: *** [Makefile:19: all] Error 127
我完全不懂Makefile,恳请帮忙解决,需要更多信息可以随时告知。
解决方案
1. 安装必要的编译工具
Ubuntu默认没有cc命令,且可能缺少基础编译依赖,先执行以下命令安装:
sudo apt update && sudo apt install gcc build-essential linux-headers-$(uname -r)
build-essential包含gcc、make等核心编译工具linux-headers-$(uname -r)是当前内核版本的头文件,确保驱动编译与内核版本匹配
2. 修改Makefile中的编译器命令
打开驱动目录下的Makefile,将所有$(CC)替换为gcc:
原代码行:
$(CC) ax88179_programmer.c -o ax88179_programmer $(CC) ax88179a_programmer.c -o ax88179a_programmer
修改后:
gcc ax88179_programmer.c -o ax88179_programmer gcc ax88179a_programmer.c -o ax88179a_programmer
3. 重新执行编译
修改完成后回到驱动目录,依次执行:
make sudo make install
内容的提问来源于stack exchange,提问作者chipichippichappachapppa
相关产品推荐
相关产品推荐

