일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 해시
- 티스토리챌린지
- StringBuilder
- K-MOOC 단국대학교 홍보단
- 자바입력받기
- attribute
- K-MOOC
- 우선순위큐
- CSS 기초
- 블록체인강의
- 단국대학교 k-mooc
- 반정규화
- html 태그
- 시스템프로그래밍
- national instruments
- 오블완
- 2차원배열정렬
- 컴파일시스템
- stringreader
- 혁신의기술2:신뢰의미래 블록체인을 만나다
- select
- 자바스크립트
- Entity
- 자바문자열구분
- StringTokenizer
- biginteger사용법
- 블록체인 강의
- Node
- html기초
- 블록체인
- Today
- Total
열정 실천
리눅스랑 더 친해지기! vim / gcc / make 본문
vim
vim
Linux의 대표적인 텍스트 편집기로 vi와 호환된다.
vim은 입력모드, 명령모드, ex모드 3가지 모드를 가지고 있다.
1. 명령모드
- 처음 vim 명령어로 편집기를 실행하면 들어가는 모드이다.
- 문서를 실제로 편집하기 위해서는 i 나 a를 입력해야한다.
- 이 모드에서 복사, 붙여넣기 등의 작업을 할 수 있다.
2. 입력모드
- 실제로 문서를 편집하기 위한 모드이다.
3. ex모드
- 입력을 마친 후 저장을 하거나 종료를 할 수 있다.
- w : 저장 / q : 종료 / i : 취소
입력모드에서 입력을 끝내고 esc 키를 누른 뒤 :wq 를 입력하고 enter를 치면! 저장하고 편집기 종료!
gcc
gcc란?
컴파일러. 소스파일을 이용해 실행파일을 만들 때까지 필요한 프로그램을 차례로 실행시키는 툴
gcc 옵션
-o : 지정된 이름으로 실행파일 생성 (default : a.out)
-c : 오브젝트 파일 (.o) 생성
-l : 같이 링크할 라이브러리 지정
-v : 컴파일 수행 메세지 표시
-S : 어셈블리 파일 생성
👉 c파일 생성 후 작성
👉 c 파일 (.c) --> 어셈블리 파일 (.s)
👉 어셈블리 파일 (.s) --> 오브젝트 파일 (.o)
👉 c 파일 (.c) --> 실행파일 (.a)
make
make란?
- 소스코드를 컴파일하기 위한 자동화 도구
- 소스 파일 간의 의존성을 관리하고, 변경된 파일만 다시 컴파일하여 효율적인 빌드 가능
- 의존성 관리 : 소스 파일 간의 의존 관계를 정의하고, 필요한 경우에만 빌드를 수행
- 자동화 : 복잡한 빌드 과정(컴파일, 링크 등)을 자동으로 처리하여 개발자의 수고를 덜어줌
- Makefile 사용 : 빌드 규칙과 의존성을 정의한 이 Makefile을 바탕으로 작동
이 세 개의 소스파일을 헤더파일과 함께 각각 컴파일하여 오브젝트 파일(.o)을 생성 후
오브젝트 파일 세 개를 링크 과정을 통해 묶은 뒤 result.out이라는 실행파일을 만드려고 한다.
main함수 안에는 test1과 test2의 함수를 호출하는 의존성이 존재한다.
Makefile을 쓰지않고 직접 컴파일하려면
gcc -c -o main.o main.c
gcc -c -o test1.o test1.c
gcc -c -o test2.o test2.c
gcc -o app.out main.o test1.o test2.o
소스코드를 수정할 때마다 이렇게 일일이 명령어를 수행해줘야한다.
이를 편리하게 하기 위한 방법이 Makefile!!!
Makefile 작성
아래처럼 Makefile을 작성하고
result.out : main.o test1.o test2.o
gcc -o result.out main.o test1.o test2.o
main.o : main.c test1.h test2.h
gcc -c main.c test1.h test1.h
test1.o : test1.c test1.h
gcc -c test1.c test1.h
test2.o : test2.c test2.h
gcc -c test2.c test2.h
명령어 make로 Makefile을 실행해보면
make명령어마 치면 컴파일이 자동으로 수행되고 result.out 실행파일이 생성된 것을 확인할 수 있다.
-.h.gch 파일은 전처리된 헤더파일을 의미한다.
'CS > OS' 카테고리의 다른 글
Thread 스레드 - 하나의 프로세스 안에 멀티스레드 (0) | 2024.09.13 |
---|---|
SSH와 포트포워딩으로 외부에서 원격 접속하기 (0) | 2024.09.13 |
프로세스 (0) | 2024.09.11 |
File I/O System call - open(), read(), write(), close() 사용해서 cat, create 프로그램 만들어보기 (0) | 2024.09.10 |
가상화란 무엇일까? - 가상 머신, 컨테이너 (0) | 2024.09.09 |