makefile编译时,明明那个文件夹存在,为啥提示找不到

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
miles010
帖子: 103
注册时间: 2014-09-10 17:36
系统: ubuntu10.04

makefile编译时,明明那个文件夹存在,为啥提示找不到

#1

帖子 miles010 » 2014-09-12 17:59

执行错误情况如下:
root@ubuntu:/mnt/hgfs/NXP/ASC884xA_5xA_SDK6.2_wk1420/ASC88xx_SDK/Driver_Source_Codes/VideoServer/TW2866_v3.0.0.3# make
make -C M=/mnt/hgfs/NXP/ASC884xA_5xA_SDK6.2_wk1420/ASC88xx_SDK/Driver_Source_Codes/VideoServer/TW2866_v3.0.0.3 modules
make: *** M=/mnt/hgfs/NXP/ASC884xA_5xA_SDK6.2_wk1420/ASC88xx_SDK/Driver_Source_Codes/VideoServer/TW2866_v3.0.0.3: No such file or directory. Stop.
make: *** [default] Error 2
文件夹如下:
root@ubuntu:/mnt/hgfs/NXP/ASC884xA_5xA_SDK6.2_wk1420/ASC88xx_SDK/Driver_Source_Codes/VideoServer/TW2866_v3.0.0.3# ../../SystemDevices/IICCtrl_v1.0.0.2/

makefile文件如下:
################################################
# Generated by Code Generator Version 4.2.0.6 #
################################################
DEBUG = n

MODULE := TW2866.ko
HEADERFILE := TW2866.h TW2866_locals.h

IICCTRL_DIR = ../../SystemDevices/IICCtrl_v1.0.0.2

# You normally should not need to change the following
ifeq ($(DEBUG),y)
EXTRA_CFLAGS += -O -g -D_DEBUG
else
EXTRA_CFLAGS += -O2 -DNO_DP -DNDEBUG
endif

ifneq ($(KERNELRELEASE),)
ifeq ($(findstring .., $(IICCTRL_DIR)),)
ROOTLOOT = $(IICCTRL_DIR)
else
ROOTLOOT = $(PWD)/$(IICCTRL_DIR)
endif
EXTRA_CFLAGS += -I$(ROOTLOOT)
obj-m := TW2866.o

else

PWD := $(shell pwd)
KERNELDIR := $(KERNELSRC)

default:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules

clean:
@ rm -rf *.o *.ko .*.cmd *.mod.c .tmp_versions *.order *symvers

endif
头像
astolia
论坛版主
帖子: 6429
注册时间: 2008-09-18 13:11

Re: makefile编译时,明明那个文件夹存在,为啥提示找不到

#2

帖子 astolia » 2014-09-12 22:17

你看仔细一点
报的错是找不到 M=/mnt/hgfs/NXP/ASC884xA_5xA_SDK6.2_wk1420/ASC88xx_SDK/Driver_Source_Codes/VideoServer/TW2866_v3.0.0.3 这个目录
而不是找不到/mnt/hgfs/NXP/ASC884xA_5xA_SDK6.2_wk1420/ASC88xx_SDK/Driver_Source_Codes/VideoServer/TW2866_v3.0.0.3 这个目录

makefile里写的是
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
实际执行的是
make -C M=/mnt/hgfs/NXP/ASC884xA_5xA_SDK6.2_wk1420/ASC88xx_SDK/Driver_Source_Codes/VideoServer/TW2866_v3.0.0.3 modules
说明没有设置KERNELDIR变量,把后面的M=XXX当成了-C的参数
miles010
帖子: 103
注册时间: 2014-09-10 17:36
系统: ubuntu10.04

Re: makefile编译时,明明那个文件夹存在,为啥提示找不到

#3

帖子 miles010 » 2014-09-13 17:33

astolia 写了:你看仔细一点
报的错是找不到 M=/mnt/hgfs/NXP/ASC884xA_5xA_SDK6.2_wk1420/ASC88xx_SDK/Driver_Source_Codes/VideoServer/TW2866_v3.0.0.3 这个目录
而不是找不到/mnt/hgfs/NXP/ASC884xA_5xA_SDK6.2_wk1420/ASC88xx_SDK/Driver_Source_Codes/VideoServer/TW2866_v3.0.0.3 这个目录

makefile里写的是
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
实际执行的是
make -C M=/mnt/hgfs/NXP/ASC884xA_5xA_SDK6.2_wk1420/ASC88xx_SDK/Driver_Source_Codes/VideoServer/TW2866_v3.0.0.3 modules
说明没有设置KERNELDIR变量,把后面的M=XXX当成了-C的参数
应该是这个问题,感谢你,周一回公司再看看
rongler
帖子: 1
注册时间: 2018-07-27 15:20
系统: win7

Re: makefile编译时,明明那个文件夹存在,为啥提示找不到

#4

帖子 rongler » 2018-07-27 15:22

你好! 请问你手里面还有官方的ASC884xA_5xA_SDK6.2_wk1420.tar.bz2吗?项目需要,不知道方便分享一下吗?
回复