2009-06-18 20 views
8

Chúng tôi có một chương trình chạy riêng, được thực hiện bằng lệnh execvp. Vì vậy, nó cần một phương pháp chính, nhưng tôi tin rằng đặt ra một vấn đề để nhật thực với một thực hiện quản lý. Chúng ta phải giữ mã này tách biệt thành một dự án riêng biệt, hay có cách nào để kết hợp nó vào cùng một dự án eclipse?Cách tạo hai nguồn điện trong một dự án nhật thực C++

Trả lời

1

Nếu makefile được gọi không biên dịch 2 phương thức main() thành cùng một tệp thực thi, nó sẽ không gây ra sự cố. Tôi không biết các dự án eclipse được xử lý như thế nào - nếu nó giống như VS, nơi "project" có nghĩa là một tập tin thực thi hay thư viện, và "solution" là một nhóm "project", thì có vẻ như bạn cần nhiều hơn một dự án. Nếu, OTOH, một "dự án" có thể chứa "tiểu dự án" khác nhau, nơi một "tiểu dự án" là một tệp thực thi hoặc thư viện, bạn sẽ có thể xử lý dễ dàng.

3

Giữ nó trong cùng một dự án và sử dụng bộ tiền xử lý xác định bạn xác định khác nhau tùy thuộc vào loại chính bạn muốn đưa vào dự án hiện tại. Ở đây các nguồn điện nằm trong cùng một tệp, nhưng tất nhiên chúng có thể nằm trong các tệp khác nhau.

#if defined(MAIN_ONE) 
int main() 
{ 
    // Do stuff 
} 
#elif defined(MAIN_TWO) 
int main() 
{ 
    // Do some other stuff 
} 
#endif 
1

Tôi không biết cách nào dễ dàng để xây dựng hai dòng chính bằng cách sử dụng hệ thống xây dựng Eclipse. Sự thay đổi nhỏ nhất mà bạn cần làm là chuyển sang makefiles và sử dụng các mục tiêu makefile để xây dựng.

Thay vào đó, tôi khuyên bạn nên chuyển sang sử dụng CMake. CMake có thể được sử dụng để tạo các makefiles được sử dụng với nhật thực. Lợi thế bạn nhận được từ việc sử dụng CMake là bạn có thể dễ dàng biết cách xây dựng các thư viện và liên kết các thư viện để tạo thành các tệp thực thi. CMake có thể tạo các bản dựng cho Eclipse, Visual Studio, Code Blocks hoặc makefiles (vì vậy bạn có thể sử dụng dấu nhắc lệnh).

7

Tạo dự án cho mỗi tệp thực thi có hàm main() và tạo dự án bổ sung để thể hiện toàn bộ phần mềm (dự án "vùng chứa"). Eclipse cho phép bạn chỉ định các dự án là phụ thuộc của các dự án khác, và trong trường hợp này, bạn sẽ muốn thiết lập dự án vùng chứa để liệt kê các dự án khác là "Các dự án được tham chiếu".

Để thực hiện việc này, hãy tạo dự án vùng chứa, sau đó nhấp chuột phải vào dự án ở cột bên trái (trình khám phá dự án) và nhấp vào "Thuộc tính". Một hộp thoại sẽ xuất hiện. Chọn mục "Tham khảo dự án" trong danh sách ở phía bên tay trái và bạn sẽ thấy một danh sách tất cả các dự án mà Eclipse hiện đang làm việc. Chọn các hộp bên cạnh các dự án cho các tệp thi hành riêng lẻ của bạn, sau đó bấm OK. Bây giờ, khi bạn thực hiện xây dựng trên dự án vùng chứa, Eclipse cũng sẽ tự động thực hiện xây dựng trên các dự án phụ thuộc này.

Khi sử dụng các tiểu dự án theo cách này, tôi thấy cá nhân hữu ích khi tạo một bộ làm việc bao gồm dự án vùng chứa và tất cả các dự án phụ (điều này có thể giúp tìm kiếm toàn bộ dự án phần mềm dễ dàng hơn).

+0

Làm thế nào để bạn ngừng dự án vùng chứa khỏi phàn nàn rằng nó không có 'tất cả' hoặc 'sạch' làm cho các mục tiêu? Thứ hai, làm thế nào để bạn xác định thứ tự mà các tiểu dự án sẽ được xây dựng? (Ngay bây giờ tập hợp các dự án của tôi bao gồm một dự án xây dựng một thư viện tất cả các dự án khác dựa vào, nhưng thư viện không được xây dựng trước (các thay đổi về đặt tên) có nghĩa là tôi cần xây dựng dự án vùng chứa hai lần) – Urhixidur

+0

@Urhixidur - Bạn sẽ phải đánh dấu thư viện như là một sự phụ thuộc của các chương trình sử dụng nó, nhưng tôi không nhớ cách thực hiện điều đó trong giao diện người dùng Eclipse. Nó là khá đơn giản nếu bạn đang viết makefiles của riêng bạn, mặc dù. Đối với câu hỏi đầu tiên, chỉ cần xác định mục tiêu thực hiện (ngay cả khi chúng không thực sự làm bất kỳ điều gì). – bta

0

Điều này được xây dựng bằng ngôn ngữ C++. Bạn sẽ phải sửa đổi nó để có được kết quả của bạn. Có điều gì đó để làm 2 thứ cùng một lúc nếu đó là những gì bạn muốn.

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