리눅스 기초와 활용 스터디

깊이있는 삽질 Ubuntu Korea Community Wiki
이동: 둘러보기, 검색

리눅스 기초와 활용 스터디 그룹 은 2015년 6월 20일 부터 진행하고 있는 스터디 그룹이다.

기본 정보[편집]

강의 내용[편집]

2015.06.20[편집]

이번에 나눈 것은 리눅스의 gcc의 빌드에 관한 내용이었습니다.

프로그램 소스의 분할[편집]

  • 프로그램 소스의 분할을 실행 하기에 앞서 먼저 해보아야 할 것은
  • C 프로그램의 빌드 과정을 아는 것입니다.
  • 컴파일과 링크와 실행 파일 만들기
  • vim이나 gedit 에디터로 편집한 C 프로그램 소스를
  • 컴파일러로 컴파일합니다.
  • gcc로 C 프로그램을 컴파일하는 과정은 다음과 같습니다.
  • C 컴파일러로 알려진 gcc는 정확히는 '컴파일 드라이버'라고
  • 불리며, 소스 코드의 빌드 과정을 순차적으로 실행하는
  • 명령입니다.
  • 1. 프리프로세서에 의한 파일 포함과 매크로 처리
  • 2. 어셈블리 코드로 컴파일하고 어셈블리 과정을 거쳐 오브젝트
  • 파일로 변환
  • 3. 오브젝트 파일 결합과 라이브러리 링크

이 결과로 생성되는 것이 실행 파일입니다. -o 옵션을 지정하지 않으면 실행 파일 명칭은 a.out이 됩니다.

// list0311.c
#include <stdio.h>

void
function1 ()
{
  printf ("Hello from function No.1\n");
}

void
function2 ()
{
  printf ("Hello from function No.2\n");
}

int
main ()
{
  function1();
  function2();
  return 0;
}


compile컴파일 대상 파일을 list0311.c라고 하면 이 파일을 컴파일하는 과정은 보통 다음과 같습니다.


Gcc.png

gcc의 -c 옵션을 사용하면 오브젝트 파일까지, -s 옵션을 사용하면 어셈블리 파일까지 생성됩니다.


Gcc2.png

물론 오브젝트 파일에서 실행 파일을 만드는 것도 가능합니다.


Gcc3.png