Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- html
- 네트워크
- VCS
- AWS
- mybatis
- r
- nodejs
- javascript
- redis
- HTTP
- socket
- reactive
- Lombok
- reactor
- Java
- effective
- NoSQL
- ajax
- Linux
- Static
- github
- network
- Elk
- cache
- git
- 데이터통신
- Heap
- spring
- mongodb
- libuv
Archives
- Today
- Total
빨간색코딩
make 유틸리티 본문
GNU MAKE
참조문서: http://wiki.kldp.org/KoreanDoc/html/GNU-Make/GNU-Make.html
make는 파일 간의 종속관계를 파악하여 Makefile(기술파일)에 적힌 대로 컴파일러에 명령하여 SHELL명령이 순차적으로 실행
1. make의 장점
- 단순 반복 작업을 자동화 해준다(일일이 gcc명령어를 안쳐도 됨)
- 프로그램의 종속 구조를 빠르게 파악
2. makefile 구성
- 목적파일(Target) : 명령어가 수행되어 나온 결과를 저장할 파일
- 의존성(Dependency) : 목적파일을 만들기 위해 필요한 재료
- 명령어(Command) : 실행 되어야 할 명령어들
- 매크로(macro) : 중복되는 이름들을 특정 단어로 치환(C의 #define)으로 코드를 단순화
3. makefile 작성
주로 파일명: Makefile
목표파일(target) : 목표파일을 만드는데 필요한 구성요소들(의존성있는 것들)
목표를 달성하기 위한 명령1
목표를 달성하기 위한 명령2
- 매크로를 참조 할 때는 소괄호나 중괄호 둘러싸고 앞에 ‘$’를 붙인다.
- 탭으로 시작해서는 안되고 , :,=,#,”” 등은 매크로 이름에 사용할 수 없다.
- 매크로는 반드시 치환될 위치보다 먼저 정의 되어야 한다.
자주쓰이는 이름
- CC : 사용할 컴파일러
- CFLAGS : 컴파일에 필요한 각종 옵션을 추가
- LDFLAGS : 라이브러리에 관한 설정
- OBJECTS : 목적파일명
- TARGET : 링크 후 생성될 실행파일명
- LIB : 라이브러리 위치 경로
4. 명령어
- make -f 파일명 : Makefile의 파일명이나 확장자가 다를경우 이런식으로 정확하게 지정해준다. 즉 반드시 파일명이 Makefile일 필요는 없다.
- make = make all : all에 정의된 명령어들을 실행
- make clean : clean에 정의된 명령어들을 실행
'C' 카테고리의 다른 글
소켓 옵션과 관련 API (0) | 2017.04.04 |
---|---|
hostent 구조체, 도메인 관련 API (0) | 2017.04.04 |
아두이노 bluetooth (0) | 2017.04.02 |
아두이노 Digita I/O & Analog I/O (0) | 2017.04.02 |
TCP소켓 Half-close 기법 (0) | 2017.03.28 |
Comments