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.
Phần makefile để biên dịch driver sao lại biên dịch theo cách `make -c `?
-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.
           
           
           1 Like
         
         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.
 
      
    
 83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?
    83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?