Đây là một bài cũ. Tuy nhiên tôi đã tìm thấy cùng một vấn đề gần đây và tôi đã tìm thấy một giải pháp thay thế dựa trên câu trả lời của @ HEKTO.
Tôi sử dụng PETSc, thư viện để giải quyết các hệ thống ma trận thưa thớt lớn. Hệ thống xây dựng của họ yêu cầu bạn sử dụng "include" trong makefile của bạn phụ thuộc vào hai biến môi trường: PETSC_DIR và PETSC_ARCH phải được đặt trong môi trường của bạn .... hoặc bạn có thể chuyển chúng thành các tùy chọn cho lệnh make của bạn !! Đây là những gì tôi đã làm.
Tôi đã makefile tạo ra bởi NetBeans và vào cuối tôi đã thêm tôi bao gồm:
include ${PETSC_DIR}/conf/variables
Chú ý cách này phụ thuộc vào định nghĩa của PETSC_DIR. Ngoài ra điều này bao gồm sử dụng ồ ạt và PETSC_ARCH tất cả các nơi.
Vì vậy, trong NetBeans bây giờ tôi định cấu hình để chuyển các biến này thành: Công cụ-> Tùy chọn: Trong tab "Tùy chọn dự án", tôi điền vào hộp văn bản cho "Make Options" là: PETSC_DIR =/path/đến/petsc PETSC_ARCH = some-arch
Ngoài ra, bây giờ bạn có thể bắt đầu sử dụng các biến môi trường này (và các biến môi trường khác được xác định trong $ {PETSC_DIR}/conf/variables trong các tùy chọn dự án của bạn.Ví dụ: đối với các tệp bao gồm tôi (nhấp chuột phải vào dự án, sau đó nhấp vào "Thuộc tính"): Trong "Trình biên dịch C", "Bao gồm thư mục" tôi đặt: $ {PETSC_DIR}/bao gồm
Và dưới "Linker" , "Thư viện" tôi đặt: $ {PETSC_LIB} (được định nghĩa trong tệp bao gồm ở trên).
Bây giờ tôi có thể tạo và chạy dự án của mình từ bên trong NetBeans. Nếu phiên bản PETSc của tôi thay đổi, tôi chỉ cần thay đổi định nghĩa của các biến được truyền để thực hiện và mọi thứ khác được giải quyết.
Tôi hy vọng điều này có thể giúp ai đó. Nó chắc chắn làm việc cho tôi. Và phần tốt đẹp là tôi có thể đưa mã của mình cho người khác và họ có thể biên dịch từ dòng lệnh bằng cách sử dụng "make" như bình thường (không có NetBeans) và xác định các biến môi trường ở trên. Việc biên dịch bây giờ không có bất kỳ đường dẫn mã hóa cứng nào.
Bạn có thể chỉ định mỗi tùy chọn biên dịch tệp, vì vậy nếu bạn nhấp chuột phải vào tệp, bạn có thể chỉ định tệp đó dưới dạng tệp 'c' hoặc tệp' C++' ... Để chọn trình biên dịch, bạn cần tạo một bộ công cụ ' . – Mikhail
@Mikhail Đây là một makefile tùy chỉnh, vì vậy Netbeans không thể làm bất cứ điều gì cho mỗi tập tin. – Potatoswatter
Có thể bạn có thể thay đổi makefile của mình? Ngoài ra bạn thực hiện một lời gọi tùy chỉnh cho makefile, nhưng tôi nghĩ bạn cần phải chọn đúng 'toolset'. – Mikhail