목차
첫 번째: c/C++ 컴파일러 gcc, cc, c++, g++가 linuxgcc에 포함되어 있습니다
두 번째: gcc 기능
세 번째: gcc 실행 프로세스
넷째: gcc 옵션
다섯 번째: gcc에 따른 합의된 규칙 중 일부
첫 번째: c/C++ 컴파일러 gcc, cc, c++, g++가 linuxgcc에 포함되어 있습니다
그중 gcc와 cc는 같고, c++과 g++는 같습니다. 보통 c언어 프로그램은 gcc로 컴파일합니다gcc로 리눅스를 컴파일하는 방법gcc로 리눅스를 컴파일하는 방법, C++ 프로그램은 g++로 컴파일합니다. .
두 번째: gcc 기능
gcc는 여러 하드웨어 플랫폼을 지원하는 휴대용 컴파일러입니다. ARM, X86 등과 같은
gcc는 로컬 컴파일러일 뿐만 아니라 여러 플랫폼에서 크로스 컴파일이 가능합니다. 소위 로컬 컴파일러는 컴파일된 프로그램이 로컬 환경에서만 실행될 수 있음을 의미합니다. gcc로 컴파일된 프로그램만 다른 플랫폼에서 실행될 수 있습니다.
gcc에는 다양한 언어를 구문 분석하기 위한 여러 언어 백엔드가 있습니다. 또한 gcc는 모듈성에 따라 설계된 Linux vi 명령이며 새로운 언어 및 새로운 CPU 아키텍처에 대한 지원을 추가할 수 있습니다. gcc는 자유 소프트웨어입니다. 누구나 이 소프트웨어를 사용하거나 수정할 수 있습니다.
세 번째: gcc 실행 프로세스
(1) 명령줄에 gcctest.c
를 입력합니다.이렇게 하면 기본적으로 a.out이라는 프로그램이 컴파일됩니다.
명령줄에 다음을 입력하세요: ./a.out
프로그램을 실행할 수 있습니다.
(2) 명령줄에 입력하면: gcctest.c-otest
이렇게 하면 test라는 프로그램이 컴파일됩니다
명령줄에 입력: ./test
프로그램을 실행할 수 있습니다.
참고: -o 매개변수는 생성된 프로그램의 이름을 지정하는 데 사용됩니다
(3) Linux 운영 체제 버전의 단계별 실행, 더 구체적인 이미지
4가지 프로세스가 포함되어 있습니다:
1. 전처리
기본적으로 4가지 작업(헤더 파일 확장, 주석 제거, 매크로 교체, 조건부 컴파일 포함)을 수행합니다.
특정 작업: 명령줄 입력: gcc-Etest.c-otest.i
이 명령의 의미: 전처리의 첫 번째 단계 후에 전처리가 중지되고 임시 콘텐츠가 test.i 파일에 저장됩니다
2.컴파일
핵심은 C언어를 어셈블리 언어로 바꾸는 것
특정 작업: 명령줄 입력: gcc-Stest.i-otest.s
이 명령의 의미: 컴파일의 두 번째 단계가 끝나면 컴파일이 중지되고 임시 콘텐츠가 test.s 파일에 저장됩니다
3.편집
핵심은 어셈블리 언어를 타겟 2의 보완 파일(실행 가능하지 않음)로 바꾸는 것입니다
특정 작업: 명령줄 입력: gcc-ctest.s-otest.o
이 명령은 조립의 세 번째 단계를 완료한 후 중지되고 임시 콘텐츠가 test.o 파일에 저장된다는 의미입니다.
4.링크
핵심은 실행 파일이나 라이브러리 파일을 생성하기 위해 코드에서 사용하는 타사 라이브러리를 소개하는 것입니다
(타사 라이브러리는 컴파일러 및 파일 접미사에 의해 결정됩니다)
넷째: gcc 옵션
-E는 전처리 작업만 수행합니다
-S 어셈블리 중지까지 컴파일(어셈블하지 않고 전처리 및 컴파일만 완료)
-c는 어셈블리 작업을 수행합니다(어셈블리 코드로 컴파일)
-O[0,1,2,3]
최적화 프로그램(기본값은 레벨 2 최적화, 0은 최적화되지 않음, 3은 가장 높은 최적화 레벨)
-static은 생성된 파일에 대해 정적 링크를 사용합니다
-공유 동적 라이브러리를 사용해 보세요
-이디르
헤더 파일 검색을 위해 디렉터리 경로에 dir 디렉터리를 추가하세요
-Ldir
검색 라이브러리의 디렉터리 경로에 dir 디렉터리를 추가하세요
-llib
lib 라이브러리 연결
-Wall로 인해 gcc는 소스 파일의 코드 문제에 대해 경고 메시지를 발행합니다
-W경고 메시지를 발행하지 마세요
-g는 gdb
와 같은 디버거의 디버깅을 용이하게 하기 위해 대상 파일에 디버깅 정보를 생성합니다.위 내용은 명령줄 입력을 기반으로 하는 c/C++ 컴파일러 실행 프로세스의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!