$ vim [파일 이름]
//해당 이름의 파일이 없는 경우 새로 생긴다.
v : 비주얼 모드
y : 복사
p : 붙여넣기
검색하는 법 : 일반모드에서 /word 그리고 n을 누르면 다음꺼 :검색
$ gcc [컴파일 할 파일.c] -o [컴파일 후 이름.o]
$ gcc hello.c -o hello.out
이때 -o hello.out 옵션을 따로 처리해주지 않으면, a.out으로 컴파일 된다.
// -c 옵션을 통해 링킹은 하지 않음
$ gcc –c –o main.o main.c
$ gcc –c –o func_one.o func_one.c
$ gcc –c –o func_two.o func_two.c
// 여기서 링킹
$ gcc –o print_func main.o func_one.o func_two.o
컴파일과 링킹이 잘 되었는 지 테스트해보면,
잘됐음ㅋ
$ ./hello.out
컴파일 시 필요한 규칙을 명시한 스크립트 파일
<target> : <dependency>
<recipe>
clean:
<remove command>
• target: 빌드 이름 대상. 이 rule이 만들어내는 최종 파일명
• dependency: 빌드 대상이 의존하는 파일 목록
• recipe: 빌드 대상을 생성하는 명령
• clean: make clean 명령어를 통해 수행할 작업 작성 (build 부산물 정리)
• “에 있는 재료들로 명령어를 가지고 을 만들어줘”
all : print_func
print_func : main.o func_one.o func_two.o
gcc -o print_func main.o func_one.o func_two.o
main.o : header.h main.c
gcc -c main.c
func_one.o : header.h func_one.c
gcc -c func_one.c
func_two.o : header.h func_two.c
gcc -c func_two.c
clean :
rm -f *.o print_func
헤더가 바뀌었는 지 확인 후 컴파일하기 위해서 각각 함수의 컴파일 대상에 header.h도 추가해준다.
그리고 make를 하면
이런식으로 성공~ (위 사진은 짤렸습니당 ㅎ)