Linux From Scratch 7.2: Lỗi khi tạo binutils-2.22 trong chương 6


7

Tôi nhận được lỗi sau khi thực hiện make tooldir=/usr

../../binutils-2.22/libiberty/regex.c:130:1: warning: function declaration isn't a prototype [-Wstrict-prototypes]
../../binutils-2.22/libiberty/regex.c:130:7: warning: conflicting types for built-in function 'malloc' [enabled by default]
../../binutils-2.22/libiberty/regex.c:131:1: warning: function declaration isn't a prototype [-Wstrict-prototypes]
../../binutils-2.22/libiberty/regex.c:131:7: warning: conflicting types for built-in function 'realloc' [enabled by default]
In file included from /usr/include/bits/string2.h:1296:0,
             from /usr/include/string.h:633,
             from ../../binutils-2.22/libiberty/regex.c:149:
/usr/include/stdlib.h:470:14: error: conflicting types for 'malloc'
../../binutils-2.22/libiberty/regex.c:130:7: note: previous declaration of 'malloc' was here
In file included from ../../binutils-2.22/libiberty/regex.c:638:0:
../../binutils-2.22/libiberty/regex.c: In function 'byte_regex_compile':
../../binutils-2.22/libiberty/regex.c:2439:7: warning: implicit declaration of function 'free' [-Wimplicit-function-declaration]
../../binutils-2.22/libiberty/regex.c:2439:33: warning: incompatible implicit declaration of built-in function 'free' [enabled by default]
../../binutils-2.22/libiberty/regex.c:2500:17: warning: incompatible implicit declaration of built-in function 'free' [enabled by default]
../../binutils-2.22/libiberty/regex.c:2533:36: warning: incompatible implicit declaration of built-in function 'free' [enabled by default]
../../binutils-2.22/libiberty/regex.c:2640:28: warning: incompatible implicit declaration of built-in function 'free' [enabled by default]
../../binutils-2.22/libiberty/regex.c:3643:26: warning: incompatible implicit declaration of built-in function 'free' [enabled by default]
../../binutils-2.22/libiberty/regex.c:4150:5: warning: incompatible implicit declaration of built-in function 'free' [enabled by default]
../../binutils-2.22/libiberty/regex.c: In function 'byte_re_compile_fastmap':
../../binutils-2.22/libiberty/regex.c:4835:11: warning: implicit declaration of function 'abort' [-Wimplicit-function-declaration]
../../binutils-2.22/libiberty/regex.c:4835:11: warning: incompatible implicit declaration of built-in function 'abort' [enabled by default]
../../binutils-2.22/libiberty/regex.c: In function 'byte_re_match_2_internal':
../../binutils-2.22/libiberty/regex.c:7424:11: warning: incompatible implicit declaration of built-in function 'abort' [enabled by default]
../../binutils-2.22/libiberty/regex.c: In function 'xregcomp':
../../binutils-2.22/libiberty/regex.c:7978:4: warning: incompatible implicit declaration of built-in function 'free' [enabled by default]
../../binutils-2.22/libiberty/regex.c: In function 'xregexec':
../../binutils-2.22/libiberty/regex.c:8053:7: warning: incompatible implicit declaration of built-in function 'free' [enabled by default]
../../binutils-2.22/libiberty/regex.c: In function 'xregerror':
../../binutils-2.22/libiberty/regex.c:8081:5: warning: incompatible implicit declaration of built-in function 'abort' [enabled by default]
../../binutils-2.22/libiberty/regex.c: In function 'xregfree':
../../binutils-2.22/libiberty/regex.c:8114:3: warning: incompatible implicit declaration of built-in function 'free' [enabled by default]
make[2]: *** [regex.o] Error 1
make[2]: Leaving directory `/sources/binutils-build/libiberty'
make[1]: *** [all-libiberty] Error 2
make[1]: Leaving directory `/sources/binutils-build'
make: *** [all] Error 2

Đầu ra hoàn chỉnh ở đây và trang tôi đang sử dụng ở đây

Ai giúp tôi với?

BIÊN TẬP:

/usr/include/stdlib.h (dòng 470)

extern void *malloc (size_t __size) __THROW __attribute_malloc__ __wur;

binutils-2.22/libiberty/regex.c (dòng 130)

char *malloc ();

Bạn có thể đưa ra các tuyên bố của malloc trong các tệp /usr/include/stdlib.h(dòng 470) và binutils-2.22/libiberty/regex.c(dòng 130)
Philippe Blayo

CFLAGS nào bạn đang sử dụng để biên dịch?
Mat

Những cái mặc định. Tôi chưa thêm bất cứ điều gì
Ruben Roy

Và tôi đang biên dịch trên Ubuntu 10.04 64 bit
Ruben Roy

2
bạn nên chạy configuretrước make. Tôi cũng thấy bạn không bao gồm /usr/includeở dòng 540.

Câu trả lời:


2

Vấn đề là STDC_HEADERS không được xác định khi bạn biên dịch mã. Xem dòng 47 của phiên bản regex.c đó . Điều này có thể xảy ra bởi vì bạn đã không chạy configurehoặc bạn đã làm nhưng đã xảy ra sự cố.

Nếu bạn chưa chạy cấu hình, chỉ cần tiếp tục và chạy nó:

./configure   

Nếu bạn chạy nó, nó sẽ tạo một tệp gọi là config.hnên sử dụng #defineđể xác định macro STDC_HEADERScho một số giá trị. Nếu không, có thể trình biên dịch bạn đang sử dụng bị thiếu thứ gì đó phụ thuộc vào (chẳng hạn như tệp tiêu đề hệ thống) hoặc bị định cấu hình sai hoặc cài đặt không chính xác.

Như tôi đã đề cập trong một nhận xét ở trên, việc phát hành binutils bạn đang sử dụng đã hơn 4 tuổi và tôi nên sử dụng phiên bản mới hơn tôi nghĩ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.