'cc1'을 실행하는 중 GCC 오류


12

랩톱에서 Raspberry Pi 용 Linux 커널을 크로스 컴파일하고 (데비안 7 실행) ( Raspberry Pi Kernel Compilation 의 지침을 따름 ); 하지만 컴파일 할 때

make ARCH=arm CROSS_COMPILE=${CCPREFIX}

다음과 같은 메시지가 나타납니다.

  CHK     include/linux/version.h
  CHK     include/generated/utsrelease.h
make[1]: `include/generated/mach-types.h' is up to date.
  CC      kernel/bounds.s
gcc: error trying to exec 'cc1': execvp: No such file or directory
make[1]: *** [kernel/bounds.s] Error 1
make: *** [prepare0] Error 2

문제는 cc1을 찾을 수 없거나 gcc올바르게 설치되지 않은 것입니다 (그래서 gcc를 다시 설치 apt-get --reinstall install gcc했지만 운이 없음).

gcc -v 제공합니다 :

Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/i486-linux-gnu/4.7/lto-wrapper
Target: i486-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.7.2-5' --with-bugurl=file:///usr/share/doc/gcc-4.7/README.Bugs --enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.7 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.7 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --enable-targets=all --with-arch-32=i586 --with-tune=generic --enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu
Thread model: posix
gcc version 4.7.2 (Debian 4.7.2-5)

gcc -print-prog-name=cc1 제공합니다 :

/usr/lib/gcc/i486-linux-gnu/4.7/cc1

gcc -print-search-dirs 제공합니다 :

install: /usr/lib/gcc/i486-linux-gnu/4.7/
programs: =/usr/lib/gcc/i486-linux-gnu/4.7/:/usr/lib/gcc/i486-linux-gnu/4.7/:/usr/lib/gcc/i486-linux-gnu/:/usr/lib/gcc/i486-linux-gnu/4.7/:/usr/lib/gcc/i486-linux-gnu/:/usr/lib/gcc/i486-linux-gnu/4.7/../../../../i486-linux-gnu/bin/i486-linux-gnu/4.7/:/usr/lib/gcc/i486-linux-gnu/4.7/../../../../i486-linux-gnu/bin/i386-linux-gnu/:/usr/lib/gcc/i486-linux-gnu/4.7/../../../../i486-linux-gnu/bin/
libraries: =/usr/lib/gcc/i486-linux-gnu/4.7/:/usr/lib/gcc/i486-linux-gnu/4.7/../../../../i486-linux-gnu/lib/i486-linux-gnu/4.7/:/usr/lib/gcc/i486-linux-gnu/4.7/../../../../i486-linux-gnu/lib/i386-linux-gnu/:/usr/lib/gcc/i486-linux-gnu/4.7/../../../../i486-linux-gnu/lib/../lib/:/usr/lib/gcc/i486-linux-gnu/4.7/../../../i486-linux-gnu/4.7/:/usr/lib/gcc/i486-linux-gnu/4.7/../../../i386-linux-gnu/:/usr/lib/gcc/i486-linux-gnu/4.7/../../../../lib/:/lib/i486-linux-gnu/4.7/:/lib/i386-linux-gnu/:/lib/../lib/:/usr/lib/i486-linux-gnu/4.7/:/usr/lib/i386-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/i486-linux-gnu/4.7/../../../../i486-linux-gnu/lib/:/usr/lib/gcc/i486-linux-gnu/4.7/../../../:/lib/:/usr/lib/

그리고 find / -type f -name cc1제공합니다 :

/opt/tools/arm-bcm2708/arm-bcm2708-linux-gnueabi/libexec/gcc/arm-bcm2708-linux-gnueabi/4.7.1/cc1
/opt/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/libexec/gcc/arm-linux-gnueabihf/4.7.2/cc1
/opt/tools/arm-bcm2708/arm-bcm2708hardfp-linux-gnueabi/libexec/gcc/arm-bcm2708hardfp-linux-gnueabi/4.7.1/cc1
/usr/lib/gcc/i486-linux-gnu/4.6/cc1
/usr/lib/gcc/i486-linux-gnu/4.7/cc1

러닝 dpkg -S cc1은 다음을 제공합니다.

libopencc1:i386: /usr/share/doc/libopencc1/changelog.Debian.gz
g++-4.7: /usr/lib/gcc/i486-linux-gnu/4.7/cc1plus
cpp-4.6: /usr/lib/gcc/i486-linux-gnu/4.6/cc1
libopencc1:i386: /usr/share/doc/libopencc1
cpp-4.7: /usr/lib/gcc/i486-linux-gnu/4.7/cc1
libopencc1:i386: /usr/share/doc/libopencc1/copyright
libgcc1:i386: /usr/share/lintian/overrides/libgcc1
ncurses-term: /usr/share/terminfo/x/xterm+pcc1
libgcc1:i386: /usr/share/doc/libgcc1

어떤 아이디어?


우분투는 여기를 살펴에 빌드 - 필수 패키지를 설치하려고 같은 문제가보고 된 ubuntuforums.org/showthread.php?t=540528
vfbsilva

@vfbsilva 이미하지만 운 (또한 스레드를 본 적이) 것을 시도
bulkmoustache

strace를 통해 make를 실행하여 더 많은 일이 발생하는 것을 보려는 경향이 있습니다. strace make.
slm

나는 strace로 실행을 시도했지만 어디서 문제를 찾아야할지 잘 모르겠습니다 ...
bulkmoustache

무엇입니까 CCPREFIX? 어떤 크로스 컴파일러를 설치했으며 어디에 설치 했습니까?
Gilles 'SO- 악의를 멈춰라'

답변:


4

네이티브 컴파일러와 크로스 컴파일러가 혼동되는 것 같습니다.

네이티브 컴파일러를 사용하려고 시도한 명령 :

gcc -v
gcc -print-prog-name=cc1

당신은 시도해야

${CCPREFIX}gcc -v
${CCPREFIX}gcc -print-prog-name=cc1

의견 읽기 gcc 크로스 컴파일러를 / home / jorge / tools / arm-bcm2708 / arm-bcm2708-linux-gnueabi / bin / arm-bcm2708-linux-g‌nueabi-gcc로 설치했다고 생각합니다. 이 경우 시도해야합니다

make ARCH=arm \
CROSS_COMPILE=/home/jorge/tools/arm-bcm2708/arm-bcm2708-linux-gnueabi/bin/arm-bcm2708-linux-g‌​nueabi-
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.