2010-09-28 32 views
7

Các công ty hiện đại sử dụng công cụ nào để biên dịch và liên kết các dự án của họ?Công ty nào sử dụng để xây dựng các tệp nhị phân của họ?

Đặc biệt với các dự án lớn, makefiles dường như không đủ khả năng để có thể mở rộng. Theo như tôi có thể nói, nhiều công ty sử dụng hệ thống xây dựng nội bộ hoặc tập lệnh nội bộ trên các hệ thống xây dựng hiện có.

Các dự án lớn có sử dụng được không? Ant thuần túy, Maven, vv được sử dụng hay nó được bao bọc bởi một số tập lệnh?

+3

Nếu bạn nghĩ makefiles không thể mở rộng, bạn không biết cách sử dụng make. Thật không may điều này có nghĩa là bạn đang ở phần lớn. Dưới đây là một mồi tốt về cách sử dụng thích hợp của thực hiện: http://miller.emu.id.au/pmiller/books/rmch/ –

+1

Làm thế nào lớn là lớn? Nhân Linux vẫn được sử dụng lần cuối cùng tôi xây dựng nó. Máy chủ httpd Apache cũng vậy. – JeremyP

Trả lời

4

Sử dụng rất nhiều CMake những ngày này, tự động tạo các tệp makefiles cho các nền tảng khác nhau. Thật không may CMake có ngôn ngữ riêng (lạ), đó là lý do tại sao cá nhân tôi thích SCons - bất cứ thứ gì nó không thể tự nhiên có thể dễ dàng được thêm vào - sau khi tất cả chỉ là mã Python. Hãy xem list of OS projects using SCons. Nhiều người trong số họ là những công trình đa nền tảng khá lớn và không tầm thường.

2

Chúng tôi đã sử dụng các trình biên dịch intel với các tập lệnh SCons tùy chỉnh được viết bằng python tại công ty cuối cùng của tôi. Phát triển bằng C++. Các sản phẩm chúng tôi phát hành là các gói phần mềm hình ảnh rất lớn.

SCons: "SCons là một công cụ-rằng việc xây dựng phần mềm mã nguồn mở là một thế hệ kế tiếp công cụ xây dựng suy nghĩ của SCons như một cải thiện, nền tảng thay thế cho tiện ích Make cổ điển với chức năng tích hợp tương tự như autoconf./automake và trình biên dịch cache như ccache. Tóm lại, SCons là một cách dễ dàng hơn, đáng tin cậy hơn và nhanh hơn để xây dựng phần mềm. "

+0

Bạn có ý nghĩa gì bởi "tập lệnh SCons tùy chỉnh?" –

+0

Vì bạn sẽ có một tệp xây dựng tùy chỉnh cho mã của mình, do đó, bạn sẽ có một tập lệnh SCons tùy chỉnh cho cùng một mục đích. – Martin

1

makemakefile là như tự nhiên để C như là ant-java

+0

Làm thế nào để bạn viết một makefile cho một dự án lớn? Một khả năng mở rộng, có thể sử dụng, makefile? Gần nhất tôi đã thấy http://www.xs4all.nl/~evbergen/nonrecursive-make.html và vẫn gặp sự cố. –

+1

@ Alex: Tôi đã làm việc trên một dự án lớn (một hệ điều hành, với JVM đi kèm) đã sử dụng. Nó đã được đệ quy ở cấp độ cao nhất, sau đó mỗi thành phần quyết định quảng cáo hoc cho dù đó là đủ lớn trên riêng của mình mà đệ quy thực hiện sẽ có vấn đề, hay không. Vì vậy, một số thành phần được xây dựng đệ quy, những thành phần khác được xây dựng bằng chính gốc của chúng. JVM là phần chậm nhất, ít nhất là vì nó đã xây dựng nhiều phiên bản cạnh nhau.Nó sử dụng một số makefiles khá lông với một kịch bản gói 'make' chính nó. Tôi không nhớ chi tiết, nhưng thật dễ dàng để thêm một thư mục mới và xây dựng bất kỳ cây con nào. –

+0

Ồ, và tất cả các lớp thư viện Java phổ biến đều được tối ưu hóa bằng cách sử dụng JNI tương đương của hệ điều hành, đó là lý do tại sao JVM quá lớn và cũng lý do chúng được xây dựng bằng 'make' và assembly hơn là' javac'. –

0

Một số dự án lớn (ví dụ, Boost) tránh làm lợi cho một trong những Jams.

2

Mỗi sản phẩm tôi đã làm việc trong hơn 10 năm tại các OEM viễn thông đã sử dụng. Một số là tương đối nhỏ, những người khác đã được hơn 1 triệu SLOC. Hầu hết các nguồn đã được c, với một số lượng đáng kể của c + +. Hầu hết các nguồn của bên thứ ba được sử dụng và tất cả các nhà cung cấp đều có thể tạo các tệp bằng các sản phẩm của họ.

Hãy nhớ rằng hệ thống bạn sử dụng để tạo sản phẩm của mình là phần mềm. Cho dù phần mềm xây dựng đó được viết bằng thực hiện, SCON hay một số ngôn ngữ/hệ thống khác, bạn phải hiểu ngôn ngữ bạn đang sử dụng để viết phần mềm tạo sản phẩm của bạn. Không làm điều này, và bạn có nguy cơ giới thiệu các lỗi trong sản phẩm của bạn gây ra bởi một hệ thống xây dựng không chính xác.

+0

Có phải nó đã tạo ra hoặc có một số kịch bản lệnh được sử dụng để xây dựng một makefile đúng không? –

+0

Đó là tất cả làm cho nguyên liệu. – bstpierre

+0

Tôi nên nói * gần như * mọi sản phẩm tôi đã làm việc trên ... có một cặp vợ chồng đã sử dụng các tệp lô DOS, nhưng tôi tiếp tục cố gắng thanh lọc mớ hỗn độn đó khỏi bộ nhớ của mình. – bstpierre

Các vấn đề liên quan