리눅스에서 C/C++ 컴파일 하기 (#1)

윤찬호·2023년 4월 14일
0

Linux

목록 보기
1/3

윈도우에서 C/C++ 컴파일 하기

윈도우에서는 C/C++ 파일을 컴파일 하기 위해 (대표적으로) Visual Studio를 사용한다.

Visual Studio를 통해 프로젝트를 만들고 소스 코드를 컴파일 하는 과정은 아래와 같다.

  1. 프로젝트 유형(정적/동적 라이브러리, MFC, ...)을 선택하고 프로젝트를 생성한다.

  2. 프로젝트 속성을 통해 포함 디렉터리, 전처리기, 추가 종속성 등 각종 설정을 한다.

  3. 소스 코드를 작성한다.

  4. 빌드(컴파일) 버튼을 클릭한다.

크게 4단계 과정을 수행하면 자동으로 알아서 빌드를 해주고 결과물을 생성해 준다.

리눅스에서 C/C++ 컴파일 하기

리눅스 환경에서는 이러한 IDE를 사용할 수 없기 때문에 컴파일 및 빌드 과정이 윈도우 환경에 비해 약간 복잡하다.

리눅스에서는 위에서 나열된 1~4 과정들을 Visual Studio로 설정하는 것이 아닌 Makefile 이라는 것을 통해 '수동으로' 설정해야 한다.

Makefile을 작성하지 않아도 컴파일 할 수 있다. 하지만 매번 명령어를 반복해서 쳐야 하고, 프로젝트의 규모가 커지고 사용하는 파일들이 많아진다면 매번 명령어를 치는 것이 매우 비효율적이기 때문에 Makefile을 작성하는 것이 일반적이다.

Makefile을 모두 작성하였다면 make 명령어를 통해 컴파일이 가능하다.
make 명령어는 Unix/Linux 시스템에 포함되는 명령어로 Makefile을 참조하여 컴파일러에 명령을 전달하며, Makefile에 기술된 Shell 명령어를 순차적으로 실행될 수 있게 한다.

GNU Compiler (gcc/g++)

Makefile을 작성하기 전에 리눅스 컴파일러에 대해 알아보겠다.

리눅스에서는 GNU 컴파일러를 통해 C/C++ 파일을 컴파일 할 수 있다.
GNU 컴파일러는 GCC와 G++로 나누어 볼 수 있다.

CC (C Compiler)
C언어 컴파일러 모두를 CC라고 한다. LINUX에서는 cc와 gcc가 심볼릭 링크로 연결되어 있어 CC와 GCC가 동일하다.

GCC (GNU Compiler Collection)
원래는 C언어만 지원하여 GNU C Compiler 였으나 추후 타 언어를 지원하게 되면서 GNU Compiler Collection로 이름이 변경되었다.

G++ (GNU C++ Compiler)
C++ 언어용 컴파일러

GCC G++
C 파일과 CPP 파일을 각각 C언어와 C++ 언어로 컴파일 한다 C 파일과 CPP 파일 모두 C++ 언어로 컴파일 한다
C라이브러리와 링크되기 때문에
C++ 언어를 컴파일 하기 위해 '-lstdc++' 을 사용해야 한다
C++ 라이브러리와 링크된다
미리 정의된 매크로가 거의 없다 몇 가지 추가 매크로가 존재

일반적으로 C언어로 작성된 파일을 컴파일 할때는 GCC를 사용하고, C++언어로 작성된 파일을 컴파일 할때는 G++을 사용한다.

0개의 댓글