2017-11-16 3 views
0

나는 다음과 같이 크로스 컴파일러가 작동 할 수 있음을 보여주고 내가 명령 line.The 명령 줄에서 arm-linux-gnueabihf-gcc -v를 입력 할 때 십자가가 우분투 16.04.And에서 도구를 컴파일 설치 :크로스 컴파일 문제

Using built-in specs. 
COLLECT_GCC=arm-linux-gnueabihf-gcc 
COLLECT_LTO_WRAPPER=/home/nju/ti-processor-linux-sdk/linux-devkit/sysroots/x86_64-arago-linux/usr/bin/../libexec/gcc/arm-linux-gnueabihf/6.2.1/lto-wrapper 
Target: arm-linux-gnueabihf 
Configured with: /home/tcwg-buildslave/workspace/tcwg-make-release/label/docker-trusty-amd64-tcwg-build/target/arm-linux-gnueabihf/snapshots/gcc-linaro-6.2-2016.11/configure SHELL=/bin/bash --with-mpc=/home/tcwg-buildslave/workspace/tcwg-make-release/label/docker-trusty-amd64-tcwg-build/target/arm-linux-gnueabihf/_build/builds/destdir/x86_64-unknown-linux-gnu --with-mpfr=/home/tcwg-buildslave/workspace/tcwg-make-release/label/docker-trusty-amd64-tcwg-build/target/arm-linux-gnueabihf/_build/builds/destdir/x86_64-unknown-linux-gnu --with-gmp=/home/tcwg-buildslave/workspace/tcwg-make-release/label/docker-trusty-amd64-tcwg-build/target/arm-linux-gnueabihf/_build/builds/destdir/x86_64-unknown-linux-gnu --with-gnu-as --with-gnu-ld --disable-libstdcxx-pch --disable-libmudflap --with-cloog=no --with-ppl=no --with-isl=no --disable-nls --enable-c99 --enable-gnu-indirect-function --disable-multilib --with-tune=cortex-a9 --with-arch=armv7-a --with-fpu=vfpv3-d16 --with-float=hard --with-mode=thumb --enable-multiarch --with-build-sysroot=/home/tcwg-buildslave/workspace/tcwg-make-release/label/docker-trusty-amd64-tcwg-build/target/arm-linux-gnueabihf/_build/sysroots/arm-linux-gnueabihf --enable-lto --enable-linker-build-id --enable-long-long --enable-shared --with-sysroot=/home/tcwg-buildslave/workspace/tcwg-make-release/label/docker-trusty-amd64-tcwg-build/target/arm-linux-gnueabihf/_build/builds/destdir/x86_64-unknown-linux-gnu/arm-linux-gnueabihf/libc --enable-languages=c,c++,fortran,lto --enable-checking=release --disable-bootstrap --build=x86_64-unknown-linux-gnu --host=x86_64-unknown-linux-gnu --target=arm-linux-gnueabihf --prefix=/home/tcwg-buildslave/workspace/tcwg-make-release/label/docker-trusty-amd64-tcwg-build/target/arm-linux-gnueabihf/_build/builds/destdir/x86_64-unknown-linux-gnu 
Thread model: posix 
gcc version 6.2.1 20161016 (Linaro GCC 6.2-2016.11) 

그러나 때 ./configure --host=arm-linux-gnueabihf을 실행하면 시스템이 arm-linux-gnueabihf 도구를 감지 할 수 없습니다.

configure: WARNING: If you wanted to set the --build type, don't use --host. 
If a cross compiler is detected then cross compile mode will be used. 
checking for a BSD-compatible install... /usr/bin/install -c 
checking whether build environment is sane... yes 
checking for arm-linux-gnueabihf-strip... no 
checking for strip... strip 
checking for a thread-safe mkdir -p... /bin/mkdir -p 
checking for gawk... no 
checking for mawk... mawk 
checking whether make sets $(MAKE)... yes 
checking for arm-linux-gnueabihf-g++... no 
checking for arm-linux-gnueabihf-c++... no 
checking for arm-linux-gnueabihf-gpp... no 
checking for arm-linux-gnueabihf-aCC... no 
checking for arm-linux-gnueabihf-CC... no 
checking for arm-linux-gnueabihf-cxx... no 
checking for arm-linux-gnueabihf-cc++... no 
checking for arm-linux-gnueabihf-cl.exe... no 
checking for arm-linux-gnueabihf-FCC... no 
checking for arm-linux-gnueabihf-KCC... no 
checking for arm-linux-gnueabihf-RCC... no 
checking for arm-linux-gnueabihf-xlC_r... no 
checking for arm-linux-gnueabihf-xlC... no 
checking for g++... g++ 
checking whether the C++ compiler works... yes 
checking for C++ compiler default output file name... a.out 
checking for suffix of executables... 
checking whether we are cross compiling... no 
checking for suffix of object files... o 
checking whether we are using the GNU C++ compiler... yes 
checking whether g++ accepts -g... yes 
checking for style of include used by make... GNU 
checking dependency style of g++... gcc3 
checking for arm-linux-gnueabihf-gcc... no 
checking for gcc... gcc 
checking whether we are using the GNU C compiler... yes 
checking whether gcc accepts -g... yes 
checking for gcc option to accept ISO C89... none needed 
checking dependency style of gcc... gcc3 
checking for pthread_rwlock_init in -lpthread... yes 
checking how to run the C preprocessor... gcc -E 
checking for grep that handles long lines and -e... /bin/grep 
checking for egrep... /bin/grep -E 
checking for ANSI C header files... yes 
checking for sys/types.h... yes 
checking for sys/stat.h... yes 
checking for stdlib.h... yes 
checking for string.h... yes 
checking for memory.h... yes 
checking for strings.h... yes 
checking for inttypes.h... yes 
checking for stdint.h... yes 
checking for unistd.h... yes 
checking fcntl.h usability... yes 
checking fcntl.h presence... yes 
checking for fcntl.h... yes 
checking for stdlib.h... (cached) yes 
checking for string.h... (cached) yes 
checking sys/ioctl.h usability... yes 
checking sys/ioctl.h presence... yes 
checking for sys/ioctl.h... yes 
checking for unistd.h... (cached) yes 
checking gtk/gtk.h usability... no 
checking gtk/gtk.h presence... no 
checking for gtk/gtk.h... no 
checking pthread.h usability... yes 
checking pthread.h presence... yes 
checking for pthread.h... yes 
checking for stdlib.h... (cached) yes 
checking for GNU libc compatible malloc... yes 
configure: creating ./config.status 
config.status: creating Makefile 
config.status: creating config.h 
config.status: config.h is unchanged 
config.status: executing depfiles commands 

그 이유는 어떤 이유로이 문제가 발생할 수 있습니까? 어떻게 해결할 수 있습니까? 감사합니다.

답변

1

툴체인 경로를 내 보낸 적이 있습니까? 당신은 그렇게해야합니다. 일하기 위해서.

내 보낸 것을 알 수있는 방법이나 없습니까?

유형 echo $PATH 터미널에 경로가 표시됩니다.


해결 방법 : 툴체인 경로를 내 보냅니다.

다음은 툴체인 경로의 예입니다. 툴 체인의 올바른 경로를 제공해야합니다.

예 :

export PATH=/opt/your_toolchains/path/arm-unknown-linux-gnu/bin/:$PATH 
+0

대단히 감사합니다. 커맨드 라인에'echo $ PATH'라고 입력하면 명령은 arm-linux-gnueabihf-gcc와 arm-linux-gnueabihf-g ++가 설치된 툴 체인 경로를 반환합니다. 그러나 프로젝트를 구성 할 때 , 명령 줄에는 여전히 arm-linux-gnueabihf-g ++이 없다는 메시지가 표시됩니다. 문제를 일으킬만한 다른 이유가 있습니까? – Light

+0

arm-linux-gnueabihf-g ++는 툴 체인의 bin 폴더에 있습니다. 빈 폴더라면'ld','gcc','g ++','ar','as' 등과 같은 유틸리티를 모두 나열 할 것입니다.이 패키지를 호스트'sudo apt install g ++'에 설치해야합니다. – LethalProgrammer

1

음, 팔 - 리눅스 - gnueabihf-GCC 그것을 수행, configure 스크립트에 의해 인쇄 된 목록의 일부가 아닌 것 같다? 하지만 arm-linux-gnueabihf-g ++에 대한 확인이 표시됩니다. 저거 하나도 설치되어 있습니까?

+0

조언을 주셔서 감사합니다. arm-linux-gnueabihf-g ++도 설치되어 있습니다. arm-linux-gnueabihf-g ++ 및 arm-linux-gnueabihf-gcc는 동일한 도구 체인에서 제공됩니다. – Light