2013-10-08 16 views
5

Trong trường hợp của tôi, tôi có một thư viện được xây dựng với mã nguồn gcc nhắm mục tiêu nhánh cortex-m4. Tôi đang cố gắng để liên kết thư viện đó vào một dự án đang được biên dịch với trình biên dịch IAR.Các thư viện tĩnh c có được tạo bằng một trình biên dịch tương thích với một trình biên dịch khác không?

Có thể thực hiện việc này hay không thư viện phải được xây dựng lại bằng các công cụ mới? Yếu tố nào ảnh hưởng đến điều này?

Trả lời

6

Thư viện tĩnh là một loạt các tệp đối tượng luôn là trình biên dịch cụ thể. Vì vậy, nếu bạn cố gắng liên kết một lib dựa trên gcc với trình biên dịch IAR, bạn sẽ gặp lỗi tại thời gian biên dịch do không khớp giữa các định dạng tệp đối tượng được liên kết.

Bạn cần xây dựng lại thư viện của mình bằng IAR.

+0

@ Brandon Yates vui lòng kiểm tra câu trả lời được đưa ra bởi Lindydancer và cho chúng tôi biết nếu nó hoạt động. Tôi không có tất cả các nguồn lực có sẵn để kiểm tra chéo khác tôi đã có thể làm nó ở cuối của tôi. Kỹ thuật được đưa ra bởi anh ta là hoàn toàn mới đối với tôi vì vậy tôi quá rất nhiều quan tâm để biết nếu nó có thể .. Cảm ơn trước. –

0

Trình biên dịch IAR cho ARM hỗ trợ định dạng AEABI, cho phép bạn biên dịch tệp bằng một trình biên dịch và liên kết với một trình biên dịch khác.

Nếu bạn đã xây dựng thư viện của mình bằng GCC và đã bật AEABE, bạn có thể sử dụng thư viện tĩnh trong dự án xây dựng bằng cách sử dụng các công cụ IAR.

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