EverGiver

Linux VI/VIM and GCC Usage 본문

전공/운영체제

Linux VI/VIM and GCC Usage

친절한개발초보자 2022. 3. 27. 14:12
728x90
About VI and VIM

 

  • VI는 Linux/Unix의 모든 운영체제에서 사용할 수 잇는 가장 기초적인 text editor이다.
  • Terminal 환경에서의 non-gui 모드와 gui 환경이 구축된 GVM까지 여러 버전이 존재한다.
  • Linux를 설치하면, 기본적으로 vi는 설치가 되어있지만 VIM은 default package에 포함되어있지 않은 경우도 존재한다.
  • 미설치된 경우, $ sudo apt-get install vim을 입력하여 설치하자.
  • 간단한 편집은 gedit 사용 가능하다.

 

About GCC and G++

 

  • GCC는 C언어를 compile하는 compiler이자 외부의 library를 linking and building 해주는 강력한 tool이다.
  • G++는 GCC와 같은 역할을 하지만, C++언어를 compile하는 tool이다.
  • 대부분의 SDK(VS, Eclipse는 내부적으로 GCC, C++를 사용한다.)
  • 미설치된 경우, $ sudo apt-get install gcc g++

 

Write Code with VI

 

  • VIM은 VI의 기능을 확장하여 사용할 수 있도록 한 package이다.
    - C/C++ 등 다양한 종료의 언어 syntax highlighting 지원
    - Indent 기능 지원
    - Colorscheme을 이용한 background/font color 지원
    - 방향키 사용 가능
    - "<Ctrl>+C", "<Ctrl>+V" 지원
    - 글자 수 및 라인 수 지원
    - 기타 여러 가지 plugin을 통해 directory explorer, multi-tab. real-time, compilation 등을 지원한다.

 

Set Up VIM

 

  • 앞서 말한 VIM의 기능을 사용하기 위해서는 모든 부분을 설정해주어야 한다.
  • VI/VIM 단축키
    - 자주 사용
      ▷ 'a', 'A' 뒤에 삽입
      ▷ 'i', 'I' 앞에 삽입
      ▷ 'dd' 한 줄 지우기

 

About GCC/G++

 

  • GCC는 *.c 파일을 컴파일 해주는 tool이다.
  • C 프로그램 컴파일 과정

  • GCC 및 G++ 옵션
Field 설명
-E  전처리(Preprocessing)를 실행하고 컴파일을 중단하게 한다.
-c Source file을 컴파일만 하고, 링크를 수행하지 않고 오브젝트 파일을 생성한다.
-o 바이너리 형식의 출력 파일의 이름(결과 실행파일)을 지정한다. (미지정시 default로 a.out 생성)
-I 헤더 파일을 검색하는 디렉토리 목록을 추가한다.
-L 라이브러리 파일을 검색하는 디렉토리 목록을 추가한다.
-l 라이브러리 파일을 컴파일시 링크한다.
-g 바이너리 파일에 표준 디버깅 정보를 포함시킨다.
-ggdb 바이너리 파일에 GNU 디버기인 gdb만이 이해할 수 있는 디버깅 정보 포함
-O 컴파일 code를 최적화시킨다.
-ON N번 -O를 수행한다.
-DFOO=RAR 명령라인에서 RAR 값을 가지는 FOO라는 선행 처리기 매크로를 정의한다.
-static 정적 라이브러리에 링크한다.
-ansi Ansi encoded code를 사용한다.
-traditional 과거 스타일의 함수 정의 형식과 전통적이 K&R C언어 형식을 지원한다.
-MM Make 호환의 의존성 목록을 출력한다.
-V 컴파일의 각 단계에서 사용되는 명령을 보여준다.

 

728x90

'전공 > 운영체제' 카테고리의 다른 글

Linux Administrator Command <User Management>  (0) 2022.03.27
Linux Administrator Command  (0) 2022.03.27
Linux Redirection & Pipe  (0) 2022.03.26
Linux Basic Shell Command  (0) 2022.03.26
Linux Outline  (0) 2022.03.26
Comments