Dù bạn làm việc với Ubuntu, Debian hay Red Hat, bạn có thể thấy lỗi: make: *** No targets specified and no makefile found. Stop. Vì đây là vấn đề chung của GNU Make, bạn có thể gặp trên vô số triển khai Unix. Nghĩa là không có file tên makefile hoặc Makefile trong thư mục làm việc hiện tại. May mắn là lỗi dễ sửa.
Cách 1: Tìm Makefile trong thư mục hiện tại
Bạn có thể thử chạy lệnh make lại lần nữa trong thư mục hiện tại xem có ném cùng lỗi không. Điều này quan trọng nếu bạn vừa mở terminal mới và đã thử tìm thư mục đúng hoặc đã dùng cd kể từ lần cuối chạy GNU make.
Giả sử vẫn lỗi, thử chạy ls hoặc dir xem file nào trong thư mục hiện tại. Bạn có thể không ở đúng nhánh cây thư mục. Nếu thấy thư mục thuộc root / hoặc home ~, bạn muốn chạy cd để định vị đúng nơi chạy make.
Có thể bạn xa hơn nữa so với kỳ vọng. Trong ví dụ, chúng tôi chạy make từ /var/crash và nó không chạy chút nào. Không thể kỳ vọng chạy từ đây, vì file ở đây chỉ là báo cáo crash không liên quan.

Nhiều khả năng bạn muốn chạy make từ thư mục trong home directory. Ví dụ, nếu build GNU nano mới nhất từ source, bạn có thư mục ~/nano-2.9.6 để cd vào và chạy make lại. Bạn có thể chạy ls lần nữa trước khi make để chắc chắn có makefile trong thư mục để build.
Nhớ rằng bạn cần cấu hình cài đặt trước. Lệnh configure tạo môi trường hoàn hảo cho trình biên dịch GNU. Nếu không tìm thấy makefile ngay cả trong thư mục dự án đúng, hãy chạy ./configure khi vẫn ở trong đó, theo sau là lệnh make. Nếu biên dịch đúng, bạn cài đặt dự án bằng sudo make install, nhưng nhớ không bao giờ build với quyền root — không chạy sudo make hay gì đó ngoài cài đặt.
Cách 2: Chỉ định Makefile tùy chỉnh
Giả sử cách trên khắc phục xong, bạn không cần làm thêm. Tuy nhiên, có hai trường hợp đặc biệt nếu cách trước không sửa được. Cả hai liên quan đến viết makefile riêng cho dự án bạn tự cấu hình.
Bạn có thể chỉ định makefile tùy chỉnh tên khác makefile bằng tùy chọn -f. Ví dụ, nếu có makefile backup tên makefile.bak, bạn chỉ định bằng make -f makefile.bak. Bạn thay makefile.bak bằng bất kỳ tên file nào và có thể thêm -i nếu muốn bỏ qua lỗi trong makefile tùy chỉnh/cũ khi compiler chạy. Thường không khuyến khích, vì bạn sẽ muốn sửa makefile nếu có lỗi.
Trường hợp liên quan chặt chẽ: phân biệt chữ hoa/thường (case sensitivity). Sau đây là các file riêng biệt theo cách Unix:
- Makefile
- makefile
- makeFile
- MakeFile
- MakefilE
Chương trình tự cấu hình có thể không nhận ra makefile với viết hoa lạ. Nếu bạn viết tay cho dự án code, bạn có thể muốn đổi tên thành makefile (thường) dù có thể dùng -i để GNU make tìm được. Nhớ rằng nếu viết đúng, bạn vẫn có thể chạy ./configure từ dự án của mình để ép nó sinh môi trường đúng và tránh vấn đề từ đầu.