Develop
2003.04.23 11:15
[c/c++] Makefile 사용하기.. ㅋㅋ
Views 7392 Comment 0
소스 코드를 모두 입력하면, 이 코드를 컴파일하고 링크한다.
수동으로 컴파일 한다는 것은 매우 어렵다.
유닉스와 MS도스/윈도우 모두 make 라 부르는 컴파일 과정의 세밀한 부분을 처리해 주는 유틸리티가 있다.
(마이크로소프트사의 비주얼C++는 이 유틸리티를 nmake라고 한다)
Makefile 에 컴파일에 대한 규칙이 있으며, 이것은 컴파일러 종속적이다.
다음은 컴파일러 별 Makefile 이다.
----------------------------------------------------------------------
make 유틸리티는 조금은 귀찮고 사용자가 당황할 수도 있는 규칙이 하나 있다.
$(CC) $(CFLAGS) -o calc calc.c
위의 줄은 반드시 탭(tab)으로 시작해야 하며, 절대로 탭 대신에 8개의 공백을
사용해서는 안되고, 탭 앞에 공백이 있어도 작동하지 않는다.
이 줄은 반드시 탭으로 시작해야 한다.
----------------------------------------------------------------------
## 일반 유닉스
File: calc/Makefile.unx
#----------------------------#
# GNU C 컴파일러를 사용하는 #
# 일반 유닉스를 위한 Makefile #
#----------------------------#
CC=gcc
CFLAGS=-g
#
# 컴파일러 플래그:
# -g -- 디버깅 켬
calc: calc.c
$(CC) $(CFLAGS) -o calc calc.c
clean:
rm -rf calc
## FSF의 gcc 컴파일러를 사용하는 유닉스
File: calc/Makefile.gcc
#-----------------------------#
# GNU C 컴파일러를 사용하는 #
# 유닉스 시스템의 위한 Makefile #
#-----------------------------#
CC=gcc
CFLAGS=-g -D__USE_FIXED_PROTOTYPES__ -ansi
#
# 컴파일러 플래그:
# -g -- 디버깅 켬
# -Wall -- 모든 경고 활성화
# (프로그램 안에서 모든 버그를 수정한 수에는 사용하지 않음)
# -D__USE_FIXED_PROTOTYPES__
# -- 컴파일러가 수정된 헤더파일을 사용하도록 만듬
# -ansi -- GNU 확장을 사용하지 않음. ANSI C를 사용
calc: calc.c
$(CC) $(CFLAGS) -o calc calc.c
clean:
rm -f calc
## 볼랜드 C++
File: calc/Makefile.bcc
#-----------------------------------------------#
# 볼랜드 사의 볼랜드 C++ 컴파일러를 위한 Makefile #
#-----------------------------------------------#
CC=bcc
CFLAGS=-N -v -w -ml
#
# 컴파일러 플래그:
# -N -- 스택 오버플로우 체크
# -v -- 디버깅 활성화
# -w -- 모든 경고 활성화
# -ml -- Large 모델
calc.exe: calc.c
$(CC) $(CFLAGS) -ecalc calc.c
clean:
erase calc.exe
## 터보 C++
File: calc/Makefile.tcc
#---------------------------#
# 터보 C 컴파일러를 사용하는 #
# 도스 시스템의 Makefile #
#---------------------------#
CC=tcc
CFLAGS=-v -w -ml
calc.exe: calc.c
$(CC) $(CFLAGS) -ecalc calc.c
clean:
erase calc.exe
## 비주얼 C++
File: calc/Makefile.msc
#-----------------------------------------#
# 마이크로소프트사의 비주얼 C++ 컴파일러를 #
# 사용하는 도스 시스템을 위한 Makefile #
#-----------------------------------------#
CC=c1
CFLAGS=/AL /Zi /W1
#
# 컴파일러 플래그:
# -AL -- Compile for large model (Large 모델)
# -Zi -- 디버깅 활성화
# -W1 -- 모든 경고 활성화
calc.exe: calc.c
$(CC) $(CFLAGS) calc.c
clean:
erase calc.exe
No. | Category | Subject | Author | Date | Views |
---|---|---|---|---|---|
841 | Develop | [ios] 아이폰용 앱 오픈 소스들 | hooni | 2013.04.23 | 470429 |
840 | Develop | 자주 쓰는 Docker 명령어 alias | hooni | 2020.01.10 | 273044 |
839 | Develop | [ios] 언어, 지역, 국가 설정 가져오기 | hooni | 2014.05.12 | 272387 |
838 | Develop |
[ios] Start developing your navigation app for CarPlay without enrollment
![]() |
hooni | 2020.02.22 | 125611 |
837 | Develop |
[android] 만화 어플 소스코드
![]() |
hooni | 2013.04.23 | 92927 |
836 | Develop |
레고 마인드스톰 NXT 수도쿠, 큐브 소스코드..
20 ![]() |
hooni | 2013.04.23 | 81605 |
835 | Develop |
[c#] Hashtable <-> Json (dll 포함)
![]() |
hooni | 2013.04.23 | 80733 |
834 | Develop | [C#] MD5, SHA1 해시 & 인코딩 | hooni | 2013.04.23 | 77976 |
833 | Develop |
[android] 점심 해결 앱 소스 코드 ㅋㅋ
![]() |
hooni | 2013.04.23 | 76507 |
832 | Develop |
[json] 종결자 (설명과 웹, C/C++/C# 프로그램 샘플 코드)
![]() |
hooni | 2013.04.23 | 72050 |
831 | Develop | [android] keytool을 사용하여 키스토어 생성 | hooni | 2013.04.23 | 69582 |
830 | Develop | [ios] Random Thoughts: Rand() vs. arc4random() | hooni | 2013.10.31 | 68127 |