땅지원
땅지원's Personal blog
땅지원
전체 방문자
오늘
어제
  • 전체 (353)
    • Frontend (2)
      • React (2)
    • Backend (90)
      • Java (16)
      • Python (19)
      • Spring (23)
      • Database (21)
      • Troubleshooting (8)
    • DevOps (27)
      • ELK (13)
    • CS (40)
    • OS (2)
      • Linux (2)
    • Algorithm (95)
      • concept (18)
      • Algorithm Problem (77)
    • 인공지능 (25)
      • 인공지능 (12)
      • 연구노트 (13)
    • 수업정리 (35)
      • 임베디드 시스템 (10)
      • 데이터통신 (17)
      • Linux (8)
    • 한국정보통신학회 (5)
      • 학술대회 (4)
      • 논문지 (1)
    • 수상기록 (8)
      • 수상기록 (6)
      • 특허 (2)
    • 삼성 청년 SW 아카데미 (6)
    • 42seoul (12)
    • Toy project (3)
    • 땅's 낙서장 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 20.11.6 BB21플러스 온라인 학술대회
  • 20.10.30 한국정보통신학회 온라인 학술대회

인기 글

태그

  • 이것이 리눅스다 with Rocky Linux9
  • E
  • ㅗ
  • D
  • I

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
땅지원
수업정리/Linux

GCC, G++, make 설치

GCC, G++, make 설치
수업정리/Linux

GCC, G++, make 설치

2020. 9. 28. 16:16

Ubuntu에 gcc 설치
- 기본 Ubuntu repository는 GCC compiler와 많은 libraries, 컴파일에 필요한 다른 utilities를 포함하는 build-essential이라는 패키지를 포함

 

linuxize.com/post/how-to-install-gcc-compiler-on-ubuntu-18-04/

 

How to Install GCC Compiler on Ubuntu 18.04

The GNU Compiler Collection (GCC) is a collection of compilers and libraries for C, C++, Objective-C, Fortran, Ada, Go, and D, programming languages. This tutorial covers the steps required to install the GCC compiler on Ubuntu 18.04

linuxize.com

[단계 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
    '수업정리/Linux' 카테고리의 다른 글
    • Docker의 설치 방법과 기본 command
    • Docker 시스템 이해
    • vi (vim)편집기 기본 사용법 및 주요 명령어
    • GNU Nano Editor의 기본 사용법
    땅지원
    땅지원
    신입 개발자의 우당탕탕 기술 블로그

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.