gcc로 C 파일 컴파일하기

3332 단어

C 프로그래밍이란



C는 절차적 프로그래밍 언어입니다. 1972년 Dennis Ritchie에 의해 처음 개발되었습니다. 주로 운영 체제를 작성하기 위한 시스템 프로그래밍 언어로 개발되었습니다. C 언어의 주요 기능에는 저수준 메모리 액세스, 간단한 키워드 집합 및 깔끔한 스타일이 포함되며, 이러한 기능을 통해 C 언어는 운영 체제 또는 컴파일러 개발과 같은 시스템 프로그래밍에 적합합니다.
C가 실행 가능하려면 먼저 컴파일해야 합니다.

gcc 소개



GNU C 컴파일러(GCC)의 원저자는 GNU 프로젝트의 창시자인 Richard Stallman입니다.
gcc는 주로 c 및 C++를 컴파일하는 데 사용되는 GNU 컴파일러 모음을 나타냅니다.
시스템에 있는 gcc 버전을 확인하려면 다음 명령을 사용하십시오.gcc -v통사론gcc [-C | -S | -E |] [-std = standard]편집
컴파일은 C 또는 C++와 같은 프로그래밍 언어로 된 텍스트 소스 코드에서 컴퓨터의 중앙 처리 장치(CPU)를 제어하는 ​​데 사용되는 1과 0의 시퀀스인 기계 코드로 프로그램을 변환하는 과정을 말합니다. 그런 다음 이 기계 코드는 실행 파일이라는 파일에 저장되며 때로는 이진 파일이라고도 합니다.
파일.

컴파일러는 고급 프로그래밍 언어(예: C)로 작성된 소스 코드를 기계어와 같은 저급 언어로 번역하는 컴퓨터 프로그램입니다.

컴파일 과정
다음과 같이 컴파일 프로세스와 관련된 네 가지 주요 단계가 있습니다.
  • 전처리
  • 컴파일 중
  • 조립
  • 링킹


  • 전처리
    이것은 소스 코드가 전달되는 첫 번째 단계입니다.
  • 이 단계에는 다음이 포함됩니다.
  • 주석 제거
  • 포함된 파일의 확장
  • 조건부 조합
  • 헤더 파일의 코드 포함
    출력은 파일 확장자.i로 저장됩니다.

  • 전처리 단계의 출력을 보려면 아래와 같이 명령gcc -E filename.c 옵션을 사용할 수 있습니다.

    root@DESKTOP-TI71NAL:~# gcc -E helloworld.c
    


    컴파일러
    이 단계에서 filename.i의 컴파일은 어셈블리 레벨에 있는 filename의 출력 파일을 컴파일하기 위해 발생합니다.username@hostname:~$ gcc -S filename.c어셈블러
    여기에서 filename.s를 입력으로 받아 어셈블러에서 filename.o로 변환합니다.

    gcc -c filename.c
    


    링커
    함수 호출과 해당 정의의 모든 연결이 완료되는 마지막 단계입니다.gcc는 기본적으로 동적 연결을 수행하므로 printf()는 동적으로 연결됩니다.
    링커에서 수행하는 작업은 다음과 같습니다.
  • 서로 다른 소스 파일의 모든 개체 파일을 함께 연결합니다.
  • 함수 호출을 해당 정의와 연결합니다. 링커는 정적 또는 동적 라이브러리에서 함수 정의의 위치를 ​​알고 있습니다.
    옵션 1

  • 다음 명령을 실행합니다.

    username@hostname:~$ gcc helloworld.c
    


    이 명령을 실행하면 컴파일러는 a.out이라는 실행 프로그램을 생성합니다. 실행 프로그램을 실행하려면 다음 명령을 입력하십시오.

    username@hostname:~$ ./a.out
    


    옵션 2
    실행 프로그램에 다른 이름을 지정하려면 아래와 같이 컴파일 중인 파일 이름 뒤에 gcc 명령에 "-o"옵션을 추가할 수 있습니다.

    username@hostname:~$ gcc helloworld.c -o helloworld
    


    실행 프로그램을 실행하려면 아래 명령을 사용하십시오.

    username@hostname:~$ ./helloworld
    


    ## gcc 옵션
    -o 이 옵션은 출력에 사용됩니다.
    이렇게 하면 filename.c 가 컴파일되지만 기본 이름을 지정하는 대신 ./filename 을 사용하여 실행됩니다.

    gcc filename.c -o filename
    

    -werror 이것은 소스를 컴파일하고 프로그램에 오류가 있는 경우 경고를 표시합니다.

    gcc filename.c -werror -o filename
    

    -wall 이것은 오류를 확인할 뿐만 아니라 다른 종류의 경고도 표시합니다.

    gcc filename.c -wall -o filename
    



    Thanks for reading
    

    좋은 웹페이지 즐겨찾기