2015-06-25 45 views
6

(Có các câu hỏi tương tự được trả lời nhưng không có câu hỏi nào thực sự áp dụng cho điều này)Lỗi trình biên dịch C: cdefs.h không tìm thấy

Tôi có một bảng với kiến ​​trúc Fedora 20 và armv71 (32-bit). Tôi đã cài đặt tất cả thư viện gcc qua yum được yêu cầu chẳng hạn như gcc, g++, cmake, glibc, glibc-devel v.v. (glibc-devel tương đương với libc6-dev-i386 trong Fedora).

Tôi đang cố gắng để biên dịch một dự án C, mà chỉ cần biên dịch tốt trên MAC OS 64-bit và 64-bit Ubuntu, nhưng mang lại cho tôi những lỗi sau trên Fedora 20 khi tôi chạy make:

/usr/include/features.h:364:25: fatal error: sys/cdefs.h: No such file or directory 
# include <sys/cdefs.h> 

Khi tôi kiểm tra /usr/include/sys thư mục, nó trống và cdefs.h tệp không tồn tại ở bất kỳ đâu trên hệ thống.

Vấn đề có vẻ là tôi đang thiếu một gói (có thể?) Nhưng không thể tìm ra cái nào bị thiếu vì tôi dường như đã cài đặt tất cả. Hoặc trình biên dịch C 32 bit thiếu tệp đó vì một lý do cụ thể? Bất kỳ trợ giúp sẽ được đánh giá cao.

+0

"Chạy 'make'" hiệu quả có thể làm bất cứ điều gì. Bạn cần hiển thị lệnh gọi trình biên dịch. Nó thường được ẩn trong quy tắc với ký hiệu '@' ở đầu dòng. Chỉ cần xóa '@' để xem những gì đang diễn ra. – stefan

+1

Kiểm tra chủ đề này: http://askubuntu.com/questions/470796/fatal-error-sys-cdefs-h-no-such-file-or-directory. Về cơ bản bạn chỉ cần cài đặt libc6-dev-i386 – littleimp

+0

Tôi đã thấy chuỗi đó nhưng tương đương với libc6-dev-i386 trong Fedora là glibc-devel, hãy kiểm tra chuỗi này: http://superuser.com/questions/491504/ how-do-i-install-package-libc6-dev-i386-on-fedora Tuy nhiên, tôi đã cài đặt glibc và glibc-devel trong hệ thống của mình (cập nhật câu hỏi) – mco

Trả lời

0

Vì bạn đang ở trên một distro dựa trên RPM, bạn có thể làm điều này:

# yum provides '*sys/defs.h' 

và để cho công cụ này làm phần cứng.

+0

và nó làm gì chính xác? – Kamiccolo

+1

Quét cơ sở dữ liệu RPM của bạn và cho bạn biết tên của RPM cung cấp tệp kết thúc bằng "sys/defs.h". –

2

sử dụng lệnh này (hoặc một cái tương tự, tùy thuộc vào hệ điều hành của bạn)

apt-get install libc6-dev-i386 
Các vấn đề liên quan