2014-04-04 19 views
5

Tôi cố gắng bao gồm một tệp, tôi đã xác định trong cmake.Lỗi trình biên dịch nội bộ GCC: Lỗi phân đoạn

-DUNINSTD_INC=$ENV{TARGET_FS}/usr/include/unistd.h 

Tôi đã kiểm tra xác định này và UNINSTD_INC là tệp chính xác.

Mã-snipped, gây ra các lỗi phân khúc như sau:

#define SURROUND(x) QUOTE(x) 
#define QUOTE(x) #x 

#include SURROUND(UNINSTD_INC) 

Nếu tôi biên dịch mã, tôi nhận được lỗi sau:

unistd.h: 1: nội lỗi biên dịch : Lỗi phân đoạn Vui lòng gửi báo cáo lỗi đầy đủ, với nguồn được xử lý trước nếu thích hợp.

Có ai đó có ý tưởng khắc phục sự cố này không?

Hoặc một cách khác để bao gồm tệp được xác định trước?

phiên bản gcc: gcc phiên bản 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)

+1

Bạn đã thử gcc 4.8 chưa? Ngoài ra: nguồn tiền xử lý trông như thế nào? – stefan

+0

Có thể sử dụng phiên bản gcc này. Chỉ có điều này là trong OSS-Clearing. Ngoài ra, tôi không thể xem mã được xử lý trước, segfault là lúc bắt đầu tiền xử lý mã số – Korbi

+0

Vâng, bạn phải cố gắng cách ly vấn đề. nó hoạt động mà không có macro? – stefan

Trả lời

-1

Việc sửa chữa rất dễ dàng: Viết báo cáo lỗi, tìm ra ai gửi nó cho, và chờ đợi cho một phiên bản trình biên dịch sửa lỗi, như được gợi ý bởi thông báo lỗi.

+0

Vâng, đây sẽ là cách dễ nhất. Nhưng tôi không có thời gian để chờ đợi. – Korbi

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