Centos에서 CC 링크를 변경하는 방법

Centos에서 CC 링크를 변경하는 방법

컴파일시 gcc 버전을 어떻게 선택하는지 물어보려고 글을 썼습니다. 내 컴퓨터에는 여러 버전의 gcc가 설치되어 있다고 생각됩니다. "gcc -v" 명령은 "gcc 버전 6.4.0(GCC)"를 반환하는 반면 "cc" 명령은 "gcc 버전 4.4.7 20120313(Red Hat 4.4.7-18)(GCC)"을 반환하기 때문입니다. "cc"가 실제로 gcc 컴파일러에 연결되어 있다는 것을 알고 있습니다. makefile에서 'CC ?= gcc'는 cc를 gcc에 연결하는 명령이어야 합니다.

그렇다면 이것은 내가 항상 gcc 4.4.7로 컴파일한다는 뜻인가요? 최신 gcc 버전에 연결하려면 cc 또는 makefile을 어떻게 변경해야 합니까? 그런데 "sudo" 명령을 사용할 권한이 없습니다.

편집: 답장을 보내주셔서 감사합니다. -a cc 유형의 출력은 'cc is /usr/bin/cc'이고 다른 출력은 'gcc is /util/bin/gcc gcc is /usr/bin/gcc'입니다. 위 경로는 gcc 6.4이고 아래 경로는 One은 이전 버전입니다.

답변1

CC당신의 makefile것은 단지 변수일 뿐입니다. 시스템에서 컴파일러나 실행 파일을 지정할 수 있습니다.

"새" gcc에 대한 직접 경로를 찾아 위에 놓으면 CC={Path} 정상적으로 컴파일됩니다.

답변2

CC ?= gcc

Makefile에서 의미하는 것은 "변수가 CC아직 설정되지 않은 경우 변수를 설정하십시오 gcc"입니다.

나중에 Makefile에서 CC변수에 나열된 컴파일러는 C 언어 파일을 컴파일하는 데 사용됩니다( CCC 컴파일러의 표준 변수입니다).

gcc이것이 사용하려는 컴파일러라면 아무것도 변경할 필요가 없습니다 .

clang예를 들어 다른 컴파일러를 사용 하거나 gcc-7완전히 다른 것을 사용 하려면 다음을 수행하십시오.아니요Makefile을 변경해야 합니다. 대신에 그냥 말해 보세요

make CC=clang

명령줄에서( clang컴파일러 실행 파일 이름일 수도 있고 자체에서 사용할 수 없는 경우 전체 경로일 수도 있음 $PATH)

사용하려면 ccache(a"컴파일러 캐시")예를 들어 clang,

make CC='ccache clang'

Makefile은 CC변수를 로 설정하기 전에 해당 변수가 설정되었는지 여부를 테스트하므로 gcc위의 방법은 make다양한 컴파일러 호출을 사용하는 가장 좋은 방법입니다. 무조건 값을 설정한다면 CCMakefile을 수정해야 합니다.

관련 정보