01/10/2018, 10:30
Phần makefile để biên dịch driver sao lại biên dịch theo cách `make -c `?
Trước giờ mình thấy makefile để biên dịch đều dùng gcc
hay g++
chứ chưa thấy dùng make -c
bao giờ hết. Ai biết giải thích cho mình với. thanks.
Bài liên quan
-c nghĩa là nhảy đến thư mục /lib/modules/$(shell uname -r)/build và gõ lệnh make M=… modules.
Bạn nên gõ man make để xem chi tiết về option -c.
Em cảm ơn. Anh có thể giải thích cho em phần
obj-m += hello_driver.o
được không ạ ? E không hiểu phần-m
đó là sao, cón phép gán thì e hiểu.hello bạn
obj-m là một biến ở trong hệ thống Makefile của linux kernel, khi bạn gán thêm giá trị cho biến này là hello_driver.o tương đương với bạn thông báo rằng để biên dịch được kernel module hello_driver.ko thì cần file hello_driver.o.
Kernel build system sẽ tìm ra file hello_driver.c của bạn và build ra file hello_driver.o bằng gcc sau đó build ra hello_driver.ko từ hello_driver.o
obj-m ở đây nghĩa là module object.