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)
Bạn đã thử gcc 4.8 chưa? Ngoài ra: nguồn tiền xử lý trông như thế nào? – stefan
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
Vâng, bạn phải cố gắng cách ly vấn đề. nó hoạt động mà không có macro? – stefan