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.

hoangviet viết 12:42 ngày 01/10/2018

-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.

Nguyen Trong Dung viết 12:41 ngày 01/10/2018

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.

hoangviet viết 12:35 ngày 01/10/2018

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.

Bài liên quan
0