使用Perl script 執行makefile的錯誤
今天在寫perl要在Linux下make出新的driver時,發現一個問題。
我們的Makefile的程式:
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
在手動執行make時都是正常的,但是我寫了一個Perl 的Script make.pl
chdir "/home/users/josesun/driver";
print `make`;
make[2]: *** No rule to make target `/home/users/josesun/Makefile'. Stop.
make[1]: *** [_module_/home/users/josesun/] Error 2
make: *** [all] Error 2
後來找了一個小時,才發現這是個只發生在sript執行makefile時才會出現的錯誤,因為大部份的makefile都設計成手動執行,因此手動執行時並不會發生錯誤。
後來修改了Makefile的程式,就能使用script正確make出driver、也能使用手動來makefile了。
all:
make -C /lib/modules/$(shell uname -r)/build M=$(shell pwd) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(shell pwd) clean













0 意見:
張貼意見