Ubuntu에 gcc 설치
- 기본 Ubuntu repository는 GCC compiler와 많은 libraries, 컴파일에 필요한 다른 utilities를 포함하는 build-essential이라는 패키지를 포함
linuxize.com/post/how-to-install-gcc-compiler-on-ubuntu-18-04/
[단계 1] 패키지 목록을 갱신
[단계 2] build-essential 패키지 설치
- gcc, g++, make을 한꺼번에 설치함
$ sudo apt-get install build-essential -y
[단계 3] GNU/Linux에 관한 manual package 설치
$ sudo apt-get install manpages-dev -y
[단계 4] gcc, g++, make 설치 확인(2020.09.25)
$ gcc --version
$ g++ --version
$ make --version
gcc : C complier
g++ : C++ complier
make : 컴파일을 자동화해 주는 프로그램
컴파일 후 실행
$ gcc hello.c -o hello
-o는 출력파일 이름을 지정할 수 있다.
지정하지 않으면 a.out 으로 지정됨
$ ./hello
Make 유틸리티
컴파일을 자동화해 주는 프로그램
최종 목표 파일(target file)의 빌드(Build) 과정을 정의해두면, 필요한 작업만 수행하여 목표 파일을 생성
종속된 파일들의 상호 의존 관계를 명시한 목록 파일(description file)을 사용하여 목표 파일을 생성
필요한 명령어만 이용해 다시 컴파일하는 지능적인 유틸리티
다중 모듈 프로그램의 재사용성을 유지하고 , 프로그램 수정에 대한 재번역을 최소화
목록 파일(description file) 의 구조
기본적으로 Makefile 혹은 makefile이라는 파일 이름을 사용
목표 파일, 부품 파일, 일련의 명령어로 구성
Tab을 꼭 해야한다는 것을 명심하자
Make 유틸리티의 사용
목록 파일이 makefile 혹은 Makefile라면 -f 옵션을 사용해 목록 파일을 명시할 필요 없음
hello: hello.c
gcc –o hello hello.c
매크로
특정한 코드를 단순하게 표현하는 기법
name := string
혹은
name = string
정의된 매크로 참조 방법 : $(name) 혹은 ${name}
<할당 연산자 ‘:=‘ 와 ‘=‘의 차이점 : 미묘한 차이 >
할당 연산자 “:=“ 경우 (simply expanded variable)
- 오른쪽 string에 대한 즉각적인 평가를 수행하여, 실제 문자열을 왼쪽 name에 저장
할당 연산자 “=“의 경우 (recursively expanded variable )
- 오른쪽 string에 대한 미평가된 형식으로 string을 name에 저장하고, 왼쪽 name이 사용될 때 평가가 이루어짐
(➔ ‘=‘이 적절한 경우가 있지만, 일반적으로 ‘:=‘가 사용됨 )
레이블
부품 파일이 없는 의존 행의 목표 파일 이름을 의미하며, 명령 행의 성격을 대표하는 이름
TARGET := hello
OBJECT := hello.o
SOURCE := hello.c
$(TARGET): $(SOURCE)
gcc –o $(TARGET) $(SOURCE)
clean:
rm -f $(TARGET) $(OBJECT)
Make 유틸리티 내에 미리 정의된 매크로(predefined macro)
'수업정리 > Linux' 카테고리의 다른 글
Docker의 설치 방법과 기본 command (0) | 2020.09.15 |
---|---|
Docker 시스템 이해 (0) | 2020.09.15 |
vi (vim)편집기 기본 사용법 및 주요 명령어 (0) | 2020.09.15 |
GNU Nano Editor의 기본 사용법 (2) | 2020.09.15 |
기본 리눅스 명령(Part 1) (0) | 2020.09.10 |