gcc 수동 설치 (인터넷 연결 제한 환경)
글쓴이: asurada92 / 작성시간: 화, 2020/02/11 - 4:56오후
현재 리눅스 수도 권한 없이 gcc 업그레이드를 해보려 하는 상황입니다.
현재 gcc 버전은 gcc (SUSE Linux) 4.3.4 [gcc-4_3-branch revision 152973] 입니다.
하지만 이를 gcc-9.2.0을 추가적으로 설치하여 2개의 gcc를 사용하려고 하는데요,
수도 권한이 없기 때문에, 제 계정 디렉토리 밑에다가 설치하려고 했습니다.
gcc-9.2.0을 수동적으로 받은 다음 (서버가 인터넷에 연결되어 있지 않음) ./configure--prefix=/home/{본인계정}/gcc 라는 명령어를 통해 gcc 를 설치하려고 했습니다.
하지만, 위와 같이 configure 실행시,
아래와 같이 에러가 발생합니다.
checking whether the C compiler works... no
configure: error: C compiler cannot create executables
아래쪽에 자세한 config.log를 첨부해 드립니다. (문제가 되는 부분인 듯한 부분만) 혹시 어떻게 진행해야 하는지 고수님들 도움좀 주실 수 없으실까요~?
... configure:4336: checking for C compiler version configure:4345: gcc --version >&5 gcc (SUSE Linux) 4.3.4 [gcc-4_3-branch revision 152973] Copyright (C) 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. configure:4356: $? = 0 configure:4345: gcc -v >&5 Using built-in specs. Target: x86_64-suse-linux Configured with: ../configure --prefix=/usr --infodir=/usr/share/info --mandir=/usr/share/man --libdir=/usr/lib64 --libexecdir=/usr/lib64 --enable-languages=c,c++,objc,fortran,obj-c++,java,ada --enable-checking=release --with-gxx-include-dir=/usr/include/c++/4.3 --enable-ssp --disable-libssp --with-bugurl=http://bugs.opensuse.org/ --with-pkgversion='SUSE Linux' --disable-libgcj --disable-libmudflap --with-slibdir=/lib64 --with-system-zlib --enable-__cxa_atexit --enable-libstdcxx-allocator=new --disable-libstdcxx-pch --enable-version-specific-runtime-libs --program-suffix=-4.3 --enable-linux-futex --without-system-libunwind --with-cpu=generic --build=x86_64-suse-linux Thread model: posix gcc version 4.3.4 [gcc-4_3-branch revision 152973] (SUSE Linux) configure:4356: $? = 0 configure:4345: gcc -V >&5 gcc: '-V' option must have argument configure:4356: $? = 1 configure:4345: gcc -qversion >&5 gcc: unrecognized option '-qversion' gcc: no input files configure:4356: $? = 1 configure:4376: checking whether the C compiler works configure:4398: gcc conftest.c >&5 gcc: error trying to exec 'cc1': execvp: No such file or directory configure:4402: $? = 1 configure:4440: result: no configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "" | #define PACKAGE_TARNAME "" | #define PACKAGE_VERSION "" | #define PACKAGE_STRING "" | #define PACKAGE_BUGREPORT "" | #define PACKAGE_URL "" | /* end confdefs.h. */ | | int | main () | { | | ; | return 0; | } configure:4445: error: in `/home/yhpark/.libs/gcc/gcc-9.2.0': configure:4447: error: C compiler cannot create executables See `config.log' for more details
Forums:
아주간단한 문제네요.
아주간단한 문제네요.
실행가능하도록 만들어주는 링커의 부재가 현재의 원인을 유발하였습니다.
이를 해결하기 위해서는 저수준의 인터프리터를 실행하여 문제의 원인을 해결해보세요.
넵!, 근데 제가 아직 초보라 이해가 안가는 부분이 있어서요!
인터프리터?를 활용 하라고 하시는게, 어떤 의미 이신지 잘 와닿지가 않아서요..., 제가 아는 인터프리터 언어는 파이썬과 같이 바이너리 맞물려서 활용하는 건데... 지금 상황에서 어떻게 적용을 해야 하는지 이해가 잘 안갑니다!, 그리고 혹시 링커의 부재 라는게, 음... 현재 사용하는 gcc를 연결해주는? 그런게 없다는 말씀이신가요!?
gcc -V 와 gcc -qversion 중에 하나가
gcc -V 와 gcc -qversion 중에 하나가 성공해야 하는데 둘 다 실패해서 발생하는 문제네요.
그런데, -V 똔느 -qversion 은 옵션 값이 있어야 하는데, 없는 것이 문제인 것 같습니다.
configure 4345 line 에서 gcc -V 뒤에 옵션 변수가 있을 것 같은데, 해당 변수값을 어떻게 구하는지 살펴 보는게 좋을 것 같네요.
똔느
세벌 https://sebuls.blogspot.kr/
추가 질문! (일단 원인은 알았습니다!)
기존에 쓰고 있었던 gcc 보다 높은 버전의 gcc를 개인 계정에 설치중입니다.,
따라서 configure를 수행할때
./configure --prefix=/home/{개인계정}/.lib/gcc-9.2.0/installed
이런식으로 configuration 수행 했습니다.
하지만 configure가 error가 발생하여 configure 스크립트가 수행되지 않습니다.
error를 살펴보니, cc1 이라는 것을 찾지 못하여 수행하지 못하고 있습니다.
COLLECT_GCC_OPTIONS='-v' '-mtune=generic'
cc1 -quiet -v -iprefix /home/yhpark/.libs/gcc/gcc-5.2.0/../lib64/gcc/x86_64-suse-linux/4.3/ ./conftest.c -quiet -dumpbase conftest.c -mtune=generic -auxbase conftest -version -o /tmp/ccqpOkTH.s
gcc: error trying to exec 'cc1': execvp: No such file or directory
찾아니, cc1을 /home/{개인계정}/.libs/gcc/gcc-5.2.0/../lib64/gcc/x86_64-suse-linux/4.3/ 여기 서 찾는 듯 한데 cc1은 /usr/lib64/gcc/x86_64-suse-linux/4.3 여기에 위치 하고 있습니다.
아마도, 원래는 gcc를 최상단 /usr/ 밑에 설치하다 보니 ../lib64/gcc/x86_64-suse-linux/4.3/ 이렇게 접근했을때 cc1 바이너리가 잡히는 듯 한데,
저처럼 /usr/밑 이 아닌 다른곳에 gcc를 설치할때, 환경변수를 어떻게 주어야 cofigure를 수행할때 에러가 없게끔 할 수 있나요?, 혹은 configure를 수행할때 어떻게 옵션을 주어야 하나요?
댓글 달기