Khi tôi cố gắng đểGCC xây dựng vấn đề (#include_next limits.h)
$ make depend -f gcc.mak
một middleware trên máy tính Ubuntu của tôi, tôi có được điều này
/usr/include/../include/limits.h:125:26: error: no include path in which to search for limits.h
Đây là các nội dung xung quanh limits.h: 125 :
/* Get the compiler's limits.h, which defines almost all the ISO constants. We put this #include_next outside the double inclusion check because it should be possible to include this file more than once and still get the definitions from gcc's header. */ #if defined __GNUC__ && !defined _GCC_LIMITS_H_ /* `_GCC_LIMITS_H_' is what GCC's file defines. */ # include_next <limits.h> #endif
tôi đã cố gắng thiết lập
$ export INCLUDE=/usr/lib/gcc/x86_64-linux-gnu/4.3/include-fixed/ $ export C_INCLUDE_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.3/include-fixed/ $ export CPLUS_INCLUDE_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.3/include-fixed/
(đây là nơi tôi tìm thấy một giới hạn khác.h trên hệ thống của mình). Tôi đã cài đặt libc6-dev, có thể giới hạn của nó đã bị một gói khác ghi đè không? Tôi có cần gói -dev khác không? Hoặc là một biến môi trường cần thiết; có lẽ điều này có thể bị phá vỡ theo cách khác?
Điều này sẽ hoạt động như hiện tại. Bạn thấy gì khi bạn thêm '-v' vào lệnh biên dịch? –
Tôi đoán rằng giới hạn.h bị thiếu (hoặc ghi đè). -v được tôi GNU Hãy thực hiện 3.81 Mục tiêu: x86_64-linux-gnu phiên bản gcc 4.3.3 (Ubuntu 4.3.3-5ubuntu4) –
Một limits.h khác mà bạn có thể tìm thấy là cái cần được kéo vào bởi include_next . Bạn có thể thêm v vào dòng lệnh gcc thực hiện quá trình biên dịch không thành công, tức là gcc -v -c foo.c không? Phần thú vị trong sản lượng của nó sẽ là #include <...> tìm kiếm bắt đầu ở đây: /usr/local/include /usr/lib/gcc/x86_64-linux-gnu/4.3.3/include /usr/lib/gcc/x86_64-linux-gnu/4.3.3/bao gồm cố định /usr/include Kết thúc danh sách tìm kiếm. –