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
- fsm
- 산업자동화
- 디지털트윈
- 역기구학
- 컴퓨터비전
- c++
- 깃허브
- cprogramming
- c프로그래밍
- 스마트팩토리
- mqtt
- makefile
- 로보틱스
- github
- git
- datastructure
- Ik
- intensity
- 로봇공학
- robotics
- pointer
- 자료구조
- 모니터링시스템
- C
- IoT
- Histogram
Archives
- Today
- Total
yebeen.kim
Make utility / makefile 본문
무엇인가
- 소프트웨어 개발을 위해 UNIX 계열 운영 체제에서 주로 사용되는 프로그램 빌드 도구
- makefile 을 실행함
- 장점 : 파일에 대한 반복적 명령을 자동화하여 시간을 절약할 수 있음, 단순반복작업 최소화
만드는 과정
- .c 파일을 목적파일 .o 로 컴파일 후 여러개의 목적파일(라이브러리)과 main함수를 합쳐 하나의 실행파일을 만든다
- header file을 만들고 c file 을 만들고 compile & build 한후 실행파일을 만들어 Run
gcc -c menu.c //menu.o 생성
gcc -c guest.c -o guest1.o //guest1.o 생성
gcc main.c guest1.o menu.o -o shop //shop.exe 실행파일 생성
./shop //Run
Makefile 용어
- Target : 명령어가 실행되었을 때 결과로 나오는 파일명
- 결과 파일이 있을 때 : target / 결과 파일이 없을 때 : dummy target
- Dependency : 실행 파일을 만들어낼때 필요한 파일
- dependency 파일이 언제 수정되었는지 체크하는게 중요하다
- 이 파일이 수정되었다면 실행 파일을 다시 만들어야하기 때문이다
- Command : 실행할 코드
- Macro : 코드 단순화
target1 : dependency1 dependency2 ...
command1
command2
실습 코드
//main.c
#include "menu.h"
#include "guest.h"
#include "stdio.h"
int main(){
int menu;
displayMenu();
menu = addGuest();
displayGuest(menu);
return 0;
}
//menu.c
#include "stdio.h"
#include "menu.h"
void displayMenu(){
printf("-------------------------\n");
printf("1. Pizza : 20000 \n");
printf("2. Spaghetti: 12000 \n");
printf("3. Salad : 7000 \n");
printf("-------------------------\n");
}
//guest.c
#include "guest.h"
#include "stdio.h"
int addGuest(){
int menu;
printf("원하는 메뉴는? ");
scanf("%d", &menu);
return menu;
}
void displayGuest(int menu){
if(menu == 1){
printf("책피자 나왔습니다");
}else if(menu == 2){
printf("습하게띠 나왔습니다");
}else if(menu == 3){
printf("샐러드 나왔습니다");
}else{
printf("그런 메뉴 없습니다~!");
}
printf("\n");
}




'24학년도 1학기 > git' 카테고리의 다른 글
| [ git ] 깃, 깃허브 초기 설정 (0) | 2024.03.26 |
|---|