Ngoài ra, có thể bạn sẽ muốn giữ các tệp mã nguồn của mình càng nhỏ và càng khả thi càng tốt, nghĩa là thích nhiều tệp đối tượng nhỏ hơn một tệp đối tượng lớn.
Điều này cũng sẽ giúp tránh recompilations không cần thiết, ngoài ra bạn có thể có một thư viện tĩnh với các tập tin đối tượng cho mỗi thư mục mã nguồn hoặc mô-đun, về cơ bản cho phép trình biên dịch sử dụng lại mã càng nhiều biên soạn trước đây càng tốt.
Thứ khác, chưa được đề cập trong bất kỳ câu trả lời nào trước đây, làm cho liên kết biểu tượng là 'riêng tư' càng tốt, nghĩa là thích liên kết tĩnh (hàm, biến) cho mã của bạn nếu nó không phải hiển thị bên ngoài.
Ngoài ra, bạn cũng có thể muốn xem xét sử dụng GNU gold linker, là much more efficient để biên dịch mã C++ cho các mục tiêu ELF. Về cơ bản, tôi khuyên bạn nên cẩn thận cấu hình quá trình xây dựng của bạn và kiểm tra xem thời gian tốn nhiều thời gian nhất, điều đó sẽ cung cấp cho bạn một số gợi ý về cách tối ưu hóa quá trình xây dựng hoặc cấu trúc mã nguồn dự án của bạn.
Cũng đảm bảo rằng mọi đệ quy được thực hiện để make -j thực sự hoạt động. Ví dụ: không gọi "make -C subdir", hãy sử dụng $ (MAKE), v.v. – richq
Tôi không chắc là tôi hiểu gợi ý đó. –
Nếu makefiles của bạn recurse bằng cách gọi chỉ cần thực hiện, bạn sẽ không nhận được nhiều khả năng mở rộng với -j kể từ khi chỉ cấp cao nhất sẽ sử dụng -j arg, bạn nên sử dụng $ (MAKE) vì nó sẽ gọi submakes với cùng - j và bạn sẽ có cơ hội tốt hơn để có được tất cả công việc đang hoạt động. –