Tiếng AnhTiếng PhápTiếng Tây Ban Nha

Ad


Biểu tượng yêu thích OnWorks

makepp_build_algorithm - Trực tuyến trên đám mây

Chạy makepp_build_algorithm trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks trên Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình giả lập trực tuyến MAC OS

Đây là lệnh makepp_build_algorithm có thể chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi như Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình giả lập trực tuyến MAC OS

CHƯƠNG TRÌNH:

TÊN


makepp_build_algorithm - Cách makepp thực thi makefile

MÔ TẢ


Nội bộ của Makepp khác với Unix tiêu chuẩn ở những điểm cơ bản. Trang này
mô tả các triết lý khác nhau một cách chi tiết.

Đảo ngược vs. phía trước suy luận
Makepp hoạt động theo hướng ngược lại với Unix make tiêu chuẩn. Unix truyền thống
được đưa ra một mục tiêu để xây dựng và sau đó nó tìm thấy một quy tắc phù hợp với các ký tự trong
tên tệp đích. Nếu mục tiêu cũ hơn bất kỳ phụ thuộc nào của quy tắc, thì nó
được xây dựng lại.

Ví dụ: hãy xem xét quy tắc mẫu này:

% .o:% .cxx
$ (CXX) $ (CXXFLAGS) -c $ (đầu vào) -o $ (đầu ra)

Khi thực hiện nhận ra rằng nó cần tạo một tệp có tên "xyz.o", nó sẽ tìm kiếm trong danh sách
quy tắc mẫu cho đến khi nó thấy rằng "xyz.o" khớp với mẫu "% .o" và sau đó nó sẽ được áp dụng
quy tắc này.

Makepp hoạt động theo hướng ngược lại. Đầu tiên nó tính toán tất cả các tệp mà nó có thể
xây dựng bằng cách áp dụng các quy tắc khớp với các ký tự trong tên tệp phụ thuộc. Sau đó, khi
nó cần phải xây dựng một tệp, nó chỉ cần xem liệu đó có phải là một trong những tệp mà nó biết hay không
làm thế nào để xây dựng. Danh sách các tệp đã biết được lưu trữ dựa trên tên tệp tuyệt đối.

Khi makepp gặp quy tắc mẫu ở trên, nó sẽ tìm kiếm tất cả các tệp trong thư mục
khớp với mẫu "% .cxx" (tức là "* .cxx"). Đối với mỗi tệp này, nó sẽ ghi nhớ
rằng nó có thể tạo ra tệp ".o" tương ứng. Nếu sau đó makepp phát hiện ra rằng nó
có thể tạo một tệp ".cxx" khác hiện không tồn tại, quy tắc này cũng sẽ được áp dụng
và tệp ".o" tương ứng sẽ được đánh dấu.

Điều này có vẻ hơi kém hiệu quả, nhưng hóa ra không phải là chậm trong hầu hết các trường hợp,
và thực tế là hầu như tất cả các tệp có thể được tạo đều được tạo.
Và biết danh sách đầy đủ các tệp có thể được tạo có một số lợi thế:

· Các ký tự đại diện có thể khớp với các tệp chưa tồn tại nhưng có thể được xây dựng.

· Các tệp tiêu đề đã được phát hiện bởi máy quét phụ thuộc tự động không có
tồn tại; makepp biết họ sẽ ở đâu. (Hầu hết các giải pháp khác cho vấn đề này
giả sử rằng bất kỳ tiêu đề nào chưa tồn tại đều nằm trong thư mục hiện tại.)

· Các kho lưu trữ đơn giản hơn nhiều để thực hiện vì makepp biết trước nó là những tệp nào
có thể làm. (Xem makepp_repositories để biết thêm chi tiết.)

· Có thể dễ dàng xác định tệp nào có thể được xây dựng (xem phần
Hàm "$ (only_targets)".

· Hàm "$ (inv_objects)" của Makepp được đơn giản hóa rất nhiều bằng cách biết các đối tượng là gì
có sẵn.

Các tập tin vs. văn bản mô hình
Makepp liên kết các lệnh xây dựng với một tệp đích, không phải với một mẫu văn bản cho một
tên tệp. Do đó, nó không bị nhầm lẫn bởi các tên khác nhau cho cùng một tệp. Vì vậy cho
ví dụ: makepp sẽ biết rằng "./xyz" và và "xyz" là cùng một tệp, trong khi makepp khác
tiện ích có thể không.

Điều này đặc biệt quan trọng bởi vì (không giống như tạo chuẩn) makepp tải các tệp makefiles
từ các thư mục khác nhau. Để các cấu hình tương đối độc lập, với
không có vị trí đặc biệt nào được cung cấp cho makefile cấp cao nhất, mỗi makefile tham chiếu đến tất cả các tệp
liên quan đến thư mục riêng của nó. Vì vậy, nếu bạn tải một tệp makefile từ thư mục con
"other_stuff" và makefile đề cập đến "../xyz", makepp sẽ lại nhận ra rằng đó là
cùng một tệp được đề cập ở trên. (Nó cũng sẽ không bị nhầm lẫn bởi thư mục liên kết mềm
tên.)

Lưu trữ xây dựng thông tin
Makepp lưu trữ nhiều thông tin hơn về mỗi tệp mà nó xây dựng ngoài ngày tháng
tem (đó là tất cả những gì mà tiêu chuẩn quan tâm). Thông tin này bao gồm:

· Chữ ký của tệp này trên bản dựng cuối cùng, vì vậy chúng tôi biết liệu bản thân tệp có
đã thay đổi

· Tên của mỗi tệp phụ thuộc, bao gồm các tệp bao gồm và các tệp khác được suy ra
tự động. Nếu danh sách này thay đổi, thì makepp giả định rằng nó cần phải xây dựng lại.

· Chữ ký của mỗi người phụ thuộc. Bằng cách này, makepp biết xây dựng lại không chỉ khi
các phụ thuộc mới hơn mục tiêu, nhưng khi chúng thay đổi. Điều này cũng làm cho
có thể sử dụng các loại chữ ký khác, chẳng hạn như tổng kiểm tra mật mã, thay vì
hơn ngày tệp.

· Toàn bộ lệnh xây dựng (và cwd của nó). Bằng cách này nếu bạn thay đổi lệnh xây dựng
(ví dụ: thay đổi các tùy chọn trình biên dịch), makepp biết xây dựng lại ngay cả khi các tệp
bản thân họ không thay đổi.

· Kiến trúc. Nếu bạn đã biên dịch chương trình của mình trên Linux và sau đó chuyển sang
Solaris, makepp tự động biết biên dịch lại mọi thứ.

Makepp tạo một thư mục con trong mọi thư mục mà nó chạm vào được gọi là ".makepp". Các
xây dựng thông tin cho một tệp tên tập tin trong một thư mục được lưu trữ trong .makepp / tên tệp. Nếu
bạn xóa thư mục con này hoặc thay đổi các tệp, makepp sẽ xây dựng lại tất cả các tệp bị ảnh hưởng.

Ngầm hiểu tải
Nếu makepp đang cố gắng tạo một mục tiêu trong một thư mục và chưa có quy tắc cho nó,
hoặc nếu nó đang tìm kiếm các tệp khớp với ký tự đại diện trong một thư mục, nó sẽ tìm trong đó
thư mục để xem liệu makefile có hiện diện hay không. Nếu vậy, makefile sẽ được tải
tự động.

Điều này có nghĩa là bạn thường không phải nói rõ ràng cho makepp biết nơi tìm
makefiles - tất cả những gì bạn phải làm là tham chiếu một tệp trong thư mục khác và makepp sẽ
tự động tìm ra cách xây dựng nó.

Tải ngầm sẽ chỉ xảy ra nếu bạn có thể ghi thư mục. Vì vậy, nếu bạn muốn
ngăn makepp cố gắng xây dựng một loạt những thứ không bao giờ thay đổi, chỉ cần làm cho
thư mục chỉ đọc.

Tải ngầm sẽ không xảy ra nếu bạn đang ở trong một cái cây dưới RootMakeppfile (.mk)
makefile khác nằm ngoài cây đó. Nếu bạn muốn điều này một lần, bạn có thể cung cấp
Tùy chọn "--do-build = /" cho makepp, để làm cho mọi thứ bên ngoài cây có thể xây dựng được. nếu bạn
luôn muốn điều này, bạn có thể đặt một câu lệnh "load_makefile" ở đâu đó trong cây để
kết nối nó với cây một cách rõ ràng.

Nếu tải ngầm cản trở bạn (tức là, makepp tải quá nhiều tệp trang và điều đó gây lãng phí
thời gian, nếu không bạn thực sự không muốn nó cố gắng xây dựng lại tất cả những thứ được mô tả trong
makefiles), bạn có thể tắt nó cho tất cả các thư mục bằng lệnh "--noimplicit_load"
tùy chọn dòng hoặc bạn có thể tắt nó cho các thư mục đã chọn bằng cách sử dụng "no_implicit_load"
trong makefile của bạn.

Sử dụng makepp_build_algorithm trực tuyến bằng dịch vụ onworks.net


Máy chủ & Máy trạm miễn phí

Tải xuống ứng dụng Windows & Linux

  • 1
    Máy pha
    Máy pha
    Phaser là một công cụ mở nhanh, miễn phí và thú vị
    nguồn HTML5 trò chơi khung cung cấp
    Hiển thị WebGL và Canvas trên
    trình duyệt web trên máy tính để bàn và thiết bị di động. Trò chơi
    có thể được đồng ...
    Tải xuống Phaser
  • 2
    Động cơ VASSAL
    Động cơ VASSAL
    VASSAL là một công cụ trò chơi để tạo
    phiên bản điện tử của bảng truyền thống
    và các trò chơi bài. Nó cung cấp hỗ trợ cho
    kết xuất và tương tác mảnh trò chơi,
    và ...
    Tải xuống Công cụ VASSAL
  • 3
    OpenPDF - Ngã ba của iText
    OpenPDF - Ngã ba của iText
    OpenPDF là một thư viện Java để tạo
    và chỉnh sửa các tệp PDF bằng LGPL và
    Giấy phép nguồn mở MPL. OpenPDF là
    Mã nguồn mở LGPL/MPL kế thừa của iText,
    có ...
    Tải xuống OpenPDF - Một nhánh của iText
  • 4
    SAGA GIS
    SAGA GIS
    SAGA - Hệ thống tự động
    Phân tích khoa học địa lý - là một địa lý
    Phần mềm Hệ thống Thông tin (GIS) với
    khả năng to lớn cho dữ liệu địa lý
    chế biến và ana ...
    Tải xuống SAGA GIS
  • 5
    Hộp công cụ cho Java / JTOpen
    Hộp công cụ cho Java / JTOpen
    Hộp công cụ IBM dành cho Java/JTOpen là một
    thư viện các lớp Java hỗ trợ
    lập trình client/server và internet
    các mô hình cho một hệ thống chạy OS/400,
    i5/OS, hoặc...
    Tải xuống Hộp công cụ cho Java/JTOpen
  • 6
    D3.js
    D3.js
    D3.js (hoặc D3 cho Tài liệu hướng dữ liệu)
    là một thư viện JavaScript cho phép bạn
    để tạo dữ liệu động, tương tác
    trực quan hóa trong trình duyệt web. Với D3
    bạn...
    Tải xuống D3.js
  • Khác »

Lệnh Linux

Ad