혜랑's STORY

[2020-2학기 리눅스 7주차] : 이론 본문

2020 SISS 21기 활동/2학기 리눅스

[2020-2학기 리눅스 7주차] : 이론

hyerang0125 2020. 11. 14. 20:59

# 프로그램 작성과 컴파일

- gedit 문서편집기

  • GNU의 대표적인 GUI 텍스트 편집기
  • GNOME 환경의 기본 편집기 : 텍스트, 프로그램 코드, 마크업 언어 편집에 적합 / 깔끔하고 단순한 GUI

- gedit 메뉴

  • 파일 : 새로 만들기, 열기, 저장, 되돌리기, 인쇄
  • 편집 : 입력취소, 다시 실행, 잘라내기, 복사, 붙여넣기, 삭제
  • 보기 : 도구모음, 상태표시줄, 전체화면, 강조 모드
  • 검색 : 찾기, 바꾸기, 줄로 이동
  • 도구 : 맞춤법 검사, 오타가 있는 단어 강조, 언어 설정, 문서 통계
  • 문서 : 모두 정장, 모두 닫기, 새 탭 그룹, 이전 문서

- 단일 모듈 프로그램 : gedit를 이용한 프로그램 작성 <- [보기] 메뉴에서 c구문 강조 기능을 설정

  • 코드의 재사용(reuse)이 어렵고, 여러 사람이 참여하는 프로그래밍이 어렵다.

* 프로그램 편집하는 화면

전처리 지시자 분홍색
주석 파란색
자료형 이름 초록색
문장 키워드 브라운색

프로그램 편집하는 화면 예시

- gcc(GNU cc) 컴파일러

$ gcc [-옵션] 파일
-> C 프로그램을 컴파일한다. 옵션을 사용하지 않으면 실행파일 a.out를 생성한다.
[옵션]
* -c : 목적 파일 생성
* -o : 실행 파일 생성

- 다중 모듈 프로그램

  • 여러 개의 .c 파일들로 이루어진 프로그램
  • 일반적으로 복잡하며 대단위 프로그램인 경우에 적합

 

# 자동 빌드 도구

- make 시스템의 필요성

  • 다중 모듈 프로그램을 구성하는 일부 파일이 변경된 경우, 변경된 파일만 컴파일하고, 파일들의 의존 관계에 따라서 필요한 파일만 다시 컴파일하여 실행 파일을 만들면 좋다.

- 메이크 파일 : 실행 파일을 만들기 위해 필요한 파일들과 그들 사이의 의존 관계, 만드는 방법 들을 기술

- make 시스템 : 메이크파일을 이용하여 파일의 상호 의존 관계를 파악하여 실행 파일을 쉽게 다시 만듬

$ make [-f 메이크파일]
-> make 시스템은 메이크파일을 이용하여 보통 실행 파일을 빌드한다. 옵션을 사용하여 별도의 메이크파일을 지정할 수 있다.

- 메이크파일의 구성

메이크파일의 구성 형식

-> 형식

목표(target) : 의존리스트(dependencies)
    명령리스트(commands)

 

# GDB 디버거(GNU debugger)

$ gdb [실행파일]
-> gdb 디버거는 실행파일을 이용하여 디버깅 모드로 실행한다.

- 주요 기능

  • 정지점(breakpoint) 설정
  • 한 줄씩 실행
  • 변수 접근 및 수정
  • 함수 참색
  • 추적(tracing)

 

# 이클립스 통합개발환경 : 다양한 언어(C/C++, Java 등)를 지원하는 통합개발환경

- 새로운 C 프로젝트 생성

  1. File -> New -> C/C++ Projects 선택
  2. 프로젝트 이름을 지정
  3. 프로젝트 타입 Hello World ANSI C Project 선택
  4. Finish 버튼 글릭하면 간단한 HelloWorld.c 프로그램 자동 생성
  5. 프로젝트 타입 Enpty Project 선택시 빈 프로젝트 생성

- 메인화면

이클립스 메인화면

  • 좌측 탐색 창 : 새로 생성된 프로젝트를 확인/ 프로젝트 밒 파일들을 탐색 가능/ 소스파일은 src 폴더에 헤더 파일은 include 폴더에 저장된
  • 중앙 상단 : 소스 및 각종 파일 등을 편집, 수정할 수 있는 창/ 하단은 C파일을 컴파일 혹은 실행한 결과를 보여주는 창들이다.
  • 우측 : 우측은 사용법을 보여준다.

 

# VI 에디터

- vi 내부 명령어

  • 원하는 위치로 이동하는 명령
  • 입력모드로 전환하는 명령
  • 수정 혹은 삭제 명령
  • 복사 및 붙이기
  • 기타 명령