arm-linux-gnu-gcc致命错误:stdio.h:没有这样的文件或目录

这些是/ usr / bin中的文件

[root@xilinx bin]# ls -ld arm*

-rwxr-xr-x. 1 root root 691752 Feb 5 2013 arm-linux-gnu-addr2line

-rwxr-xr-x. 1 root root 721416 Feb 5 2013 arm-linux-gnu-ar

-rwxr-xr-x. 1 root root 1297632 Feb 5 2013 arm-linux-gnu-as

-rwxr-xr-x. 1 root root 689168 Feb 5 2013 arm-linux-gnu-c++filt

-rwxr-xr-x. 1 root root 545664 Feb 6 2013 arm-linux-gnu-cpp

-rwxr-xr-x. 1 root root 34176 Feb 5 2013 arm-linux-gnu-elfedit

-rwxr-xr-x. 1 root root 544624 Feb 6 2013 arm-linux-gnu-gcc

-rwxr-xr-x. 1 root root 214400 Feb 6 2013 arm-linux-gnu-gcov

-rwxr-xr-x. 1 root root 760640 Feb 5 2013 arm-linux-gnu-gprof

-rwxr-xr-x. 2 root root 1177528 Feb 5 2013 arm-linux-gnu-ld

-rwxr-xr-x. 2 root root 1177528 Feb 5 2013 arm-linux-gnu-ld.bfd

-rwxr-xr-x. 1 root root 704672 Feb 5 2013 arm-linux-gnu-nm

-rwxr-xr-x. 1 root root 875456 Feb 5 2013 arm-linux-gnu-objcopy

-rwxr-xr-x. 1 root root 1096992 Feb 5 2013 arm-linux-gnu-objdump

-rwxr-xr-x. 1 root root 721456 Feb 5 2013 arm-linux-gnu-ranlib

-rwxr-xr-x. 1 root root 389040 Feb 5 2013 arm-linux-gnu-readelf

-rwxr-xr-x. 1 root root 693608 Feb 5 2013 arm-linux-gnu-size

-rwxr-xr-x. 1 root root 691648 Feb 5 2013 arm-linux-gnu-strings

-rwxr-xr-x. 1 root root 875456 Feb 5 2013 arm-linux-gnu-strip

我正在按照本教程交叉编译一个简单的C程序:

/* myinit.c

* Build instructions:

* ${CROSS_COMPILE}gcc -static init.c -o init

* */

#include <stdio.h>

int

main ()

{

printf ("\n");

printf ("Hello world from %s!\n", __FILE__);

while (1) { }

return 0;

}

现在,我将其保存为.c文件,并尝试对其进行编译;

[root@xilinx Xilinx-ZC702-14.7]# arm-linux-gnu-gcc myinit.c 

myinit.c:6:19: fatal error: stdio.h: No such file or directory

compilation terminated.

仅当我使用arm-linux-gnu-gcc时,这才令人发指。

但是当我使用gcc时,它工作正常。

为什么arm-linux *会出现此错误?

[root@xilinx Xilinx-ZC702-14.7]# arm-linux-gnu-cpp -Wp,-v

ignoring nonexistent directory "/usr/lib/gcc/arm-linux-gnueabi/4.7.2/../../../../arm-linux-gnueabi/sys-include"

ignoring nonexistent directory "/usr/lib/gcc/arm-linux-gnueabi/4.7.2/../../../../arm-linux-gnueabi/include"

#include "..." search starts here:

#include <...> search starts here:

/usr/lib/gcc/arm-linux-gnueabi/4.7.2/include

/usr/lib/gcc/arm-linux-gnueabi/4.7.2/include-fixed

End of search list.

[root@xilinx Xilinx-ZC702-14.7]# arm-linux-gnu-gcc -v myinit.c 

Using built-in specs.

COLLECT_GCC=arm-linux-gnu-gcc

COLLECT_LTO_WRAPPER=/usr/libexec/gcc/arm-linux-gnueabi/4.7.2/lto-wrapper

Target: arm-linux-gnueabi

Configured with: ../gcc-4.7.2-20121114-aarch64/configure --disable-dependency-tracking --disable-silent-rules --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/var/lib --mandir=/usr/share/man --infodir=/usr/share/info --build=x86_64-redhat-linux-gnu --host=x86_64-redhat-linux-gnu --target=arm-linux-gnueabi --enable-targets=all --program-prefix=arm-linux-gnu- --enable-languages=c --with-newlib --without-headers --disable-sjlj-exceptions --with-system-libunwind --disable-nls --disable-threads --disable-shared --disable-libmudflap --disable-libssp --disable-libgomp --disable-libquadmath --disable-gold --disable-decimal-float --enable-checking= --enable-gnu-unique-object --enable-linker-build-id --disable-plugin --enable-nls --with-system-zlib --with-bugurl=http://bugzilla.redhat.com/bugzilla/ --enable-obsolete

Thread model: single

gcc version 4.7.2 20121105 (Red Hat 4.7.2-2.aa.20121114svn) (GCC)

COLLECT_GCC_OPTIONS='-v' '-mtls-dialect=gnu'

/usr/libexec/gcc/arm-linux-gnueabi/4.7.2/cc1 -quiet -v myinit.c -quiet -dumpbase myinit.c -mtls-dialect=gnu -auxbase myinit -version -o /tmp/ccZNNlzj.s

GNU C (GCC) version 4.7.2 20121105 (Red Hat 4.7.2-2.aa.20121114svn) (arm-linux-gnueabi)

compiled by GNU C version 4.4.6 20120305 (Red Hat 4.4.6-4), GMP version 4.3.1, MPFR version 2.4.1, MPC version 0.8

GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072

ignoring nonexistent directory "/usr/lib/gcc/arm-linux-gnueabi/4.7.2/../../../../arm-linux-gnueabi/sys-include"

ignoring nonexistent directory "/usr/lib/gcc/arm-linux-gnueabi/4.7.2/../../../../arm-linux-gnueabi/include"

#include "..." search starts here:

#include <...> search starts here:

/usr/lib/gcc/arm-linux-gnueabi/4.7.2/include

/usr/lib/gcc/arm-linux-gnueabi/4.7.2/include-fixed

End of search list.

GNU C (GCC) version 4.7.2 20121105 (Red Hat 4.7.2-2.aa.20121114svn) (arm-linux-gnueabi)

compiled by GNU C version 4.4.6 20120305 (Red Hat 4.4.6-4), GMP version 4.3.1, MPFR version 2.4.1, MPC version 0.8

GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072

Compiler executable checksum: a19a7c6897fa348d9d5b59c718fa0648

myinit.c:6:19: fatal error: stdio.h: No such file or directory

compilation terminated.

Redhat 6,64位

回答:

看来,这里的问题是您为目标安装了编译器工具链,但没有为目标安装标准库。您需要专门为目标平台编译的标准C库。您可以在找到编译器工具链的同一位置找到一个预编译器,或者下载一个并使用目标工具链进行交叉编译。

当您拥有目标的标准C库时,请使用标志-I(大写的i)告诉编译器在哪里可以找到头文件,并使用-L标志告诉链接器在哪里可以找到库,例如-lc(这是较低的-

情况L)告诉链接器与库链接。就像是

$ arm-linux-gnu-gcc -I/usr/local/target/include myinit.c -L/usr/local/target/lib -lc

以上是 arm-linux-gnu-gcc致命错误:stdio.h:没有这样的文件或目录 的全部内容, 来源链接: utcz.com/qa/430441.html

回到顶部