로그인

검색

조회 수 1318 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 게시글 수정 내역 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 게시글 수정 내역 댓글로 가기 인쇄

리눅스 상에서 gcc 사용하는 방법

 

1. 컴파일 하는 법

$> gcc -c main.c

     gcc -c book.c

이와 같이 하면 해당 c파일에 대한 오브젝트 파일이 생성된다.

 

2. 실행 파일 생성 및 링킹하는 법

$> gcc -o booklist book.o list.o main.o

이와 같이 하면 생성된 오브젝트 파일들을 링크하여 booklist라는 실행파일(exe)이 생성된다.

 

 

* tip

2번에서와 같이 오브젝트 파일들의 양이 많아지는 경우에는

Makefile을 사용하면 한 번에 컴파일 및 링킹/실행 파일 생성이 가능하다.

 

아래의 내용을 Makefile로 저장을 한다.(리눅스 상에서 gedit나 쉘 상에서 emacs, vi, vim을 이용한다)

주의할 점은 확장자 없이 바로 Makefile로 저장을 하고 첫 글자는 일반적으로 대문자 M으로 쓴다.

 

/* Makefile */

BIN = booklist                        /* 실행 파일 이름 */

OBJECTS = book.o list.o main.o        /* 오브젝트 파일 이름 */

 

 

all : ${OBJECTS}                     /*타겟 : 오브젝트 파일 이용하여 실행 파일 생성 */

       gcc -o ${BIN} ${CFLAGS} ${OBJECTS}        /* 쉘 상에서 실행될 gcc 명령어  */

                                                                        /* 처음에 입력한 변수명으로 대치된다. */

 

 

%.o : %.c                                  /* C코드에 대한 컴파일 */

       gcc -c -Wall ${CFLAGS} $<           /* 컴파일 옵션 : -Wall은 모든 모호한 코드에 대한 경고 메시지를 보여줌 */

                                                          /* Error는 물론이고 Warning도 보여준다고 생각하면 ok */

                                                          /* ${CFLAGS} $< 의 의미는 입력파일( < 리다이렉션 )로  */

                                                          /* 현재 경로에 있는 C파일들을 모두 불러오는 것을 의미함 */

 

 

clean :                           /* 재컴파일시 기존 object파일을 모두 지우고 다시 생성 */

       rm -rf *.o                   

 

 

위와 같이 Makefile을 작성하고 저장 후 쉘 상에서 make를 입력하면 컴파일~실행 파일 생성까지

한번에 완료된다.

 

 

<출처> http://wiki.kldp.org/KoreanDoc/html/gcc_and_make/gcc_and_make.html 및 관련 도서

?

  1. 음향관련 측정수치 및 그래프에 관한 기본지식

  2. 사람은 언제 추위를 느끼는가

  3. NASA 발표에 대해 쉽게 정리한 글

  4. 차세대 웹의 특징, "황금의 삼각형"

  5. 아이폰 크랙어플 다운 사이트

  6. 간단한 블루스크린 원인 알아보기

  7. 간단한 gcc + Makefile 사용법

  8. 인텔 모바일 CPU 호환성 가이드(Intel Mobile Processor Compatibility Guide) - CPU 업그레이드 관련

  9. 웹캠 USB전원 문제

  10. 가상피시 Virtualbox

  11. 아이폰으로 활용하고 있는 수많은 기능들 정리

  12. 모질라 썬더버드(Thunderbird) 백업과 복구

  13. 윈도우 파일 시스템 FAT32를 NTFS로 변환하기

  14. C: 용량 늘리기

  15. Why do wires get tangled up?

  16. 수학공식 액션스크립트 예제

  17. 사자성어

  18. 터키 수도가 앙카라로 된 이유는?

  19. 자주 틀리는 단어

  20. 코코아 매스 & 코코아 버터

Board Pagination Prev 1 ... 10 11 12 13 14 15 16 17 18 19 20 Next
/ 20