Cho dù bạn đang làm việc với Ubuntu, Debian hay Red Hat, bạn có thể gặp lỗi ghi make:*** Không có mục tiêu được chỉ định và không tìm thấy tệp makefile. Ngừng lại. Vì đây là một vấn đề chung liên quan đến GNU Make nói chung, bạn có thể thấy nó trên vô số triển khai Unix. Có nghĩa là không có tệp có tên là makefile hoặc Makefile trong thư mục làm việc hiện tại của bạn. May mắn thay, đó là một lỗi dễ sửa.
Phương pháp 1:Tìm một Makefile trong Thư mục Hiện tại
Bạn có thể muốn thử chạy make lệnh một lần nữa trong thư mục hiện tại để xem liệu lỗi tương tự có xảy ra với bạn hay không. Điều này đặc biệt quan trọng nếu bạn đã mở một cửa sổ dòng lệnh mới và đã cố gắng tìm đúng thư mục hoặc nếu bạn đã sử dụng lệnh cd kể từ lần cuối cùng bạn cố gắng chạy GNU make.
Giả sử điều đó xảy ra, hãy thử chạy ls hoặc dir để xem những tệp nào có trong thư mục hiện tại của bạn. Bạn có thể không ở đúng phần của cây thư mục. Nếu bạn nhận thấy rằng bạn thấy các thư mục thuộc về thư mục gốc / hoặc thư mục home ~ của mình, thì bạn sẽ muốn chạy lệnh cd để định vị chính mình vào đúng vị trí để chạy lệnh make.
Có cơ hội bạn có thể thấy mình ở xa hơn nữa so với nơi bạn mong đợi. Trong ví dụ của chúng tôi, chúng tôi đã thử chạy make từ thư mục / var / crash và thấy nó hoàn toàn không hoạt động. Nó không thể chạy từ đây vì các tệp duy nhất ở vị trí cụ thể này là từ các báo cáo sự cố không liên quan.
Nhiều khả năng là bạn sẽ muốn chạy lệnh thực hiện của mình từ một thư mục nằm ở đâu đó bên trong thư mục chính của bạn. Ví dụ:nếu bạn đang xây dựng phiên bản GNU nano mới nhất từ nguồn thì có thể bạn sẽ có một thư mục nằm ở ~ / nano-2.9.6 mà bạn có thể cd đến và sau đó chạy lại. Bạn có thể muốn thử chạy ls một lần nữa trước khi bạn cố gắng thực hiện để đảm bảo rằng có một tệp tạo tệp nằm trong thư mục để bạn xây dựng từ đó.
Hãy nhớ rằng trước tiên bạn cần phải định cấu hình cài đặt. Lệnh cấu hình tạo ra môi trường hoàn hảo cho trình biên dịch GNU phát triển. Nếu bạn không tìm thấy tệp makefile ngay cả trong thư mục dự án chính xác, hãy chạy ./configure trong khi bạn vẫn ở trong đó, theo sau là make yêu cầu. Nếu điều này được biên dịch chính xác, thì bạn có thể cài đặt dự án của mình với sudo make install , nhưng hãy nhớ rằng bạn không muốn tạo bất kỳ thứ gì dưới dạng root nên bạn sẽ không bao giờ muốn chạy sudo make hoặc bất kỳ thứ gì khác bên ngoài cài đặt.
Phương pháp 2:Chỉ định một Makefile Tùy chỉnh
Giả sử điều đó đã khắc phục được sự cố, bạn không cần phải làm gì thêm. Tuy nhiên, có hai trường hợp sử dụng đặc biệt cần xem xét nếu phương pháp trước đó không khắc phục được sự cố của bạn. Cả hai đều liên quan đến việc viết makefile của riêng bạn cho một dự án mà bạn đã định cấu hình bằng tay.
Bạn có thể chỉ định một makefile tùy chỉnh được gọi là cái gì đó khác với makefile theo nghĩa đen bằng cách sử dụng tùy chọn -f. Ví dụ:nếu bạn có một makefile dự phòng được gọi là makefile.bak thì bạn có thể chỉ định nó bằng cách chạy make -f makefile.bak từ dòng lệnh. Bạn có thể thay thế makefile.bak bằng bất kỳ tên tệp nào và bạn có thể bao gồm tùy chọn -i nếu bạn muốn bỏ qua lỗi trong makefile tùy chỉnh hoặc lỗi thời trong khi trình biên dịch đang chạy. Điều này thường không được khuyến nghị, vì bạn có thể muốn chỉnh sửa tệp trang điểm của mình nếu có bất kỳ điều gì sai sót trong tệp.
Trường hợp sử dụng có liên quan rất chặt chẽ khác liên quan đến một tình huống trong đó phân biệt chữ hoa chữ thường là một vấn đề. Sau đây là tất cả các tệp riêng biệt trong cách hoạt động của Unix:
- Makefile
- makefile
- makeFile
- MakeFile
- MakefilE
Các chương trình được định cấu hình tùy chỉnh có thể không nhận dạng được tệp trang điểm có cách viết hoa kỳ lạ. Nếu bạn đã viết tay nó cho một dự án mã hóa mà bạn đang thực hiện, thì có thể bạn sẽ muốn đổi tên nó là makefile mặc dù bạn có thể sử dụng tùy chọn -i để đảm bảo rằng GNU make có khả năng tìm thấy nó. Hãy nhớ rằng nếu bạn đã viết mọi thứ một cách chính xác, thì bạn vẫn có thể chạy ./configure từ dự án của riêng bạn để buộc nó tạo ra môi trường phù hợp và tránh sự cố này, bắt đầu.