2012-02-01 25 views
5

Có một số cách để quản lý xây dựng một dự án. Tôi biết về những khả năng:Cách đúng để xây dựng dự án C++ là gì? Tạo/IDE/Ant ...?

  • Hãy
  • IDE
  • Ant
  • Maven

Chúng ta có thể nói rằng một số trong số họ (hoặc thậm chí một số khác mà tôi không biết?) nói chung là tốt hơn so với những người khác và nên được chắc chắn ưa thích trên một dự án mới?

Tại thời điểm này, tôi sử dụng dự án của mình một bản dựng được Eclipse IDE quản lý và tôi cân nhắc việc di chuyển sang makefiles. Bằng cách nào đó tôi cảm thấy rằng nó sẽ dễ quản lý hơn, nhưng mặt khác, nó thực sự là mục tiêu của IDE để làm cho mọi thứ dễ quản lý hơn. Vì vậy, tôi chỉ sẽ làm công việc có hại cố gắng để trở về một cái gì đó cũ thời? Tôi có một kinh nghiệm tuyệt vời với Maven từ một dự án Java, nhưng nó là một ý tưởng tốt để buộc nó với C + + (mặc dù tôi biết rằng nó có thể ...)?

+0

Ưu tiên nền tảng chéo hay chúng ta đang nói đến một nền tảng cụ thể? –

Trả lời

10

Hầu hết C++ xây dựng hệ thống đó vẫn còn tồn tại, làm như vậy vì một lý do. Mà là để nói, họ là tốt hơn so với các lựa chọn thay thế trong một số cách. (Ngoại trừ các hệ thống xây dựng mà bạn đã viết XML, xin lỗi ANT)

Nhưng nói chung, chúng tôi thấy một số mẫu sử dụng xuất hiện.

Bạn nói chung chỉ thấy các dự án IDE được sử dụng cho MSVC và XCode. Điều này là do sự tích hợp tốt hơn, với IDE, vâng. Nhưng quan trọng hơn, Nền tảng. VC++ được hỗ trợ đặc biệt bởi các dự án IDE, và nói chung có sự hỗ trợ rất kém, ngoại trừ những thứ mà cuối cùng tạo ra các dự án. Tôi đã không bao giờ nhìn thấy một dự án c + + mà xây dựng với nhật thực, nhưng điều đó có thể liên quan đến việc không bao giờ nhìn thấy các lập trình viên C++, người viết mã trong Eclipse.

Trên nền tảng Unix, bạn thường thấy một số biến thể của Makefiles đang được sử dụng. Dường như điều này liên quan đến việc muốn có một kẻ phản diện ít phổ biến nhất để xây dựng các dự án từ, vì hầu hết mã được phân phối dưới dạng mã nguồn.

Các dự án như CMake (dự án tạo ra) thường được sử dụng khi nền tảng độc lập là ưu tiên hàng đầu, bạn đạt được một số chi phí do tạo ra các bước xây dựng, nhưng có thể xây dựng dự án trên nhiều nền tảng từ một buildbase.

Tôi thực sự chỉ thấy ANT được sử dụng để thực hiện các bản dựng liên tục, và thậm chí sau đó, thường nó gọi là bước xây dựng riêng biệt, tôi không chắc chắn tại sao lại như vậy.

Sau đó, tôi cũng đã thấy rất nhiều cách sử dụng cho những thứ như Jam (thay thế) trong các dự án độc quyền nhắm mục tiêu * nix/Mac hoặc các nền tảng ít phổ biến hơn. Đặc biệt trong phát triển trò chơi, tôi nghĩ điều này nói chung là từ các đội như Make in theory (Khái niệm xử lý nguồn xây dựng của bạn như bạn đối xử với mã của bạn, không có WYSIWYG và những thứ tương tự) nhưng hiểu rằng Make is broken. Tuy nhiên, có sự sang trọng của việc không phải phân phối nguồn.

Đây chỉ là một loạt các mẫu mà tôi đã quan sát và cố gắng hợp lý hoá nó, rất ít trong số này dựa trên các sự thật khách quan.

+0

xây dựng C++ với Eclipse không khó để thiết lập – user1387622

+0

Điều đó có vẻ như vậy. Tôi không ngụ ý rằng Eclipse khó sử dụng trong vấn đề đó. Chỉ cần chúng ta không thấy nhiều dự án C++ được phân phối với các dự án xây dựng Eclipse giống như cách chúng ta làm cho Visual Studio và XCode. – Arelius

6

Khi sử dụng nền tảng độc lập, tôi đã đạt được kết quả tốt bằng cách sử dụng Cmake. Cấu hình của nó dựa trên các tệp văn bản và nó tạo ra các kịch bản lệnh "thực" xây dựng như Makefiles hoặc các dự án thích hợp cho các IDE. Nếu bạn không có vấn đề với giới thiệu một số loại bước xây dựng trước, tôi sẽ đi cho nó.

Trong trường hợp tôi có thể ở lại nền tảng phụ thuộc, tôi chỉ cần đi với bất cứ điều gì tôi thích. Điển hình Visual Studio dự án/giải pháp trên Windows và Makefiles trên Linux.

1

Tôi giả sử bạn đang sử dụng CDT Eclipse. Quá trình xây dựng thực sự là dựa trên Makefile. Tuy nhiên, tôi nghĩ CDT tạo ra Makefile tại thời gian biên dịch. Có lẽ ai đó khác có thể xác minh điều đó cho tôi. Bất kể, trong CDT bạn có thể tạo một dự án "Makefile". Kiểu dự án đó cho phép bạn sử dụng nguồn sẵn có và Makefile của nó thay vì bắt đầu từ đầu.

Một điều cần xem xét là bạn có yêu cầu hỗ trợ xây dựng không đầu (ví dụ như một phần của CI hoặc quá trình xây dựng tự động khác) không? Nếu vậy, sau đó bạn sẽ muốn chắc chắn chọn một công nghệ xây dựng hỗ trợ đó (như Make).

Đối với thông tin về cách sử dụng CDT Makefiles: Eclipse documentation

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