[gcc] Gcc 오류 : gcc : ‘cc1’exec 시도 오류 : execvp : 해당 파일 또는 디렉토리가 없습니다.

Linux Mint 12에서 gcc를 성공적으로 사용하고 있습니다. 이제 오류가 발생합니다. 나는 최근에 몇 가지 .so 빌드를 수행하고 얼마 전까지 Clang을 설치했지만 두 이벤트 이후 성공적으로 컴파일되었으므로 무엇이 변경되었는지 확실하지 않습니다. GUI 소프트웨어 관리자를 사용하여 gcc를 제거한 다음 다시 설치했지만 결과는 동일합니다.

~/code/c/ut: which gcc
/usr/bin/gcc

~/code/c/ut: gcc -std=c99 -Wall -Wextra -g -c object.c
gcc: error trying to exec 'cc1': execvp: No such file or directory



답변

설명

오류 메시지는 빌드 시간 종속성 (이 경우 cc1)이 발견되지 않았으므로 필요한 모든 것입니다. 적절한 패키지를 시스템에 설치합니다 (소스에서 // 다른 방법으로 패키지 관리자 사용).

무엇입니까 cc1:

cc1전처리 된 C 언어 파일을 가져와 어셈블리로 변환하는 내부 명령입니다. C를 컴파일하는 실제 부분입니다. C ++의 경우 cc1plus 및 다른 언어에 대한 기타 내부 명령이 있습니다.

이 답변에서 가져온 에 의해 앨런 Shutko 씨 .

솔루션 : Ubuntu / Linux Mint

sudo apt-get update
sudo apt-get install --reinstall build-essential

솔루션 : Docker-alpine 환경

docker-alpine 환경에 있는 경우 다음 을 추가 하여 빌드 기반 패키지를 설치 합니다 Dockerfile.

RUN apk add build-base

Pablo Castellano가 제공 한 더 나은 패키지 이름 . 자세한 내용은 여기를 참조하세요 .

빌드 목적으로 더 많은 패키지가 필요한 경우 alpine-sdk 패키지 추가를 고려하십시오 .

RUN apk add alpine-sdk

github 에서 가져옴

솔루션 : CentOS / Fedora

이 답변 에는 CentOS 및 Fedora Linux에 대한 지침 포함되어 있습니다.

솔루션 : Amazon Linux

sudo yum install gcc72-c++

에서 촬영 이 댓글CoderChris

이 방법으로 누락 된 종속성을 설치하려고 할 수도 있습니다 ( 하지만 문제를 해결하지 않는다고합니다 ).

sudo yum install gcc-c++.noarch

이 답변 에서 가져온


답변

CentOS 또는 Fedora에서

yum install gcc-c++ 


답변

데비안 / 우분투에서 다음을 다시 설치하여이 문제를 해결했습니다 build-essential.

sudo apt-get update
sudo apt-get install --reinstall build-essential


답변

이는 gcc입력 처리를 완료하기 위해 다른 많은 실행 파일을 호출 cc1하고 포함 된 경로에 없기 때문입니다.

쉘 유형 whereis cc1. 경우 cc1발견, 더 나은 가서의 디렉토리에 소프트 링크를 만들 것 gcc; 그렇지 않으면 cc1이 설치되어 있지 않으며 패키지 관리자를 사용하여 gcc-c ++ 를 설치해야합니다 .


답변

Amazon Linux : GCC 문제 수정

이것이 Google의 첫 번째 결과이므로 Amazon Linux에 대한 경험을 문서화하고 싶었습니다. 설치 gcc-c++.noarch하면 문제가 해결되었습니다.

sudo yum install gcc-c++.noarch

일부 사람들은이 대안을 해결책으로보고했습니다.

sudo yum install gcc72-c++


답변

오늘도 비슷한 문제가 발생했습니다. 동료가 자신의 소프트웨어를 빌드 할 수는 없었지만 빌드 할 수있었습니다. 그가 달렸을 때 gcc그것은 찾을 수 없습니다 cc1.

그의 실행 경로는 합리적으로 보였지만 실패를 쉽게 복제 할 수 없다는 사실은 그의 환경에서 원인으로 무언가를 암시했습니다.

결국 우리는 발견 GCC_EXEC_PREFIX범인이었다 자신의 환경에 정의와 오해의 소지가되었다 gcc에 대한 검색에 cc1. 이것은 그의 쉘 시작 스크립트의 일부였으며 더 이상 사용되지 않는 SPARC / Solaris 시스템의 제한 사항을 해결하기위한 것입니다. 이 환경 변수를 설정하지 않으면 문제가 해결되었습니다.

http://gcc.gnu.org/onlinedocs/gcc/Environment-Variables.html


답변

g ++를 명시 적으로 설치하여이 문제를 해결했습니다.

sudo apt-get install g++

Pandas를 설치하는 동안 Ubuntu 12.04에서 문제가 발생했습니다. (위험 해 감사합니다.)