2013-07-27 36 views
6

Xin chào Tôi có dự án C được nhúng và tất cả thư viện C cơ bản được lưu trữ trong thư mục bên ngoài (không phải trong không gian làm việc). Tôi có thể biên dịch bởi vì trình biên dịch biết nơi để tìm kiếm các tập tin này, nhưng Eclipse không biết rằng những tập tin tồn tại và tôi nhận được thông báo lỗi: enter image description hereEclipse Kepler CDT bao gồm các tệp tiêu đề bên ngoài/Thêm Đường dẫn Bao gồm Bên ngoài (với các thư mục con)

Tôi có thể tự thêm một thư mục với: rightClickOnProject->Properties->C/C++ Include Paths and Symbols -> Add External Include Path

Ví dụ file <stdint.h> nằm trong thư mục C:\embARM7\yagarto\arm-elf\include vì vậy tôi làm như sau:

enter image description here

Điều này giải quyết các điểm đánh dấu lỗi eclipse cho <stdint.h>

Nhưng những tập tin <stdio.h> nằm trong thư mục C:\embARM7\yagarto\arm-elf\include\sys và tôi phải làm cho toàn bộ quá trình một lần nữa cho:

enter image description here

Bây giờ tập tin tiêu đề tiếp theo nằm ở C:\embARM7\yagarto\arm-elf\include\machine và vân vân và vân vân. ...

Câu hỏi của tôi là: Có cách nào để thêm đường dẫn bao gồm bên ngoài với TẤT CẢ các thư mục con không? Loại "thêm thư mục này và tất cả thư mục con"/"thêm thư mục này đệ quy". Giống như C:\embARM7\yagarto\arm-elf\include\* để tôi không phải thêm từng thư mục trong cấu trúc thư mục theo cách thủ công. Đối với một dự án này là 5 phút nhưng tôi phải làm điều đó cho 10 dự án và loại công việc này rất tệ.

Cảm ơn

+0

tôi có những vấn đề tương tự với rất phổ biến: 'C:/xxx/Cygwin/usr/include' nơi mà tất cả các thư mục nội bộ như' libxml2' không được tính. Chưa có giải pháp nào. – Alex

Trả lời

1

Tôi chưa tìm thấy tùy chọn như vậy trong Eclipse 3.7-4.3 cũng như trong MS VS2012. Rõ ràng cách giải quyết là viết một kịch bản bằng bất kỳ ngôn ngữ nào tạo ra đường dẫn đệ quy cho bạn.

Đối với Eclipse, bạn có thể viết tệp .xml với cài đặt dự án và sau đó nhập tệp (Thuộc tính dự án -> C/C++ General -> Đường dẫn và ký hiệu -> Cài đặt nhập ...). Để tạo ý tưởng về cấu trúc của tệp này, hãy bắt đầu bằng cách xuất cài đặt dự án hiện tại của bạn ở đâu đó.

6

Tôi cũng gặp phải vấn đề tương tự khi thêm tập hợp các tiêu đề bên ngoài vào dự án của tôi. Thay vì sử dụng các Path và Symbols trong Project Properties, tôi đã thêm vào dự án của tôi một liên kết đến thư mục gốc chứa tất cả các header bên ngoài trong thư mục con của nó. Đây là cách để làm điều đó:

  1. rightClickOnProject->New->Folder,
  2. Bấm vào Advanced nút trong New Folder hộp thoại,
  3. chọn Link to alternate location hộp tùy chọn,
  4. Browse vào thư mục gốc của bạn có chứa tất cả các tiêu đề của bạn, và
  5. Nhấn nút Finish.

Cheers

+0

Vấn đề với cách tiếp cận này là nếu có các tệp trong thư mục liên kết có phụ thuộc chưa được đáp ứng, bạn buộc phải giải quyết những phụ thuộc đó trước để tiến hành phát triển không phân biệt nếu bạn cần các tệp đó. Ví dụ nếu thư mục liên kết có một tệp tiêu đề "header1.h" bao gồm một tệp tiêu đề "header2.h", thì người dùng phải đảm bảo header2.h có sẵn không phân biệt nếu bạn đang bao gồm header1.h hoặc không có trong nguồn của bạn tập tin. Tôi nghĩ rằng nhật thực phân tích tất cả các tập tin có mặt trong thư mục liên kết. Đây không phải là trường hợp nếu bạn sử dụng External Path-Include. – infoclogged