기존 C 언어 컴파일을 위해 패키지를 설치할 때 build-essential 패키지를 설치했을 경우 gcc와 g++이 함께 설치된다.
여기서 gcc는 GNU C Compiler로 C 언어를 컴파일하는데 사용할 수 있으며 g++은 GNU C++ Compiler로 C++을 컴파일하는데 사용할 수 있다.
.cpp 파일 컴파일
먼저 다음과 같이 소스 코드를 작성한 후 .cpp 확장자로 저장하였다.
#include <iostream>
int main(void){
std::cout << "Hello World!" << std::endl;
return 0;
}
C++ 로 작성한 소스 파일을 빌드하는 과정은 기존 C와 비슷하지만 한 가지 과정을 더 거치게 된다.
가장 먼저 g++ -c 명령으로 .cpp 파일을 목적 파일(.o)로 변환한다.
g++ -c helloworld.cpp
작업이 완료되면 helloworld.o 라는 파일이 생성된 것을 확인할 수 있다. 이 파일을 다시 한 번 g++ 명령어를 사용해 실행 파일로 변환한다. -o 옵션을 사용해 실행 파일을 생성할 경로와 이름을 지정할 수 있다.
g++ helloworld.o -o helloworld
생성된 파일을 실행하면 정상적으로 빌드된 것을 확인할 수 있다.
$ ./helloworld
Hello World!
헤더 파일을 포함한 여러 개의 파일을 컴파일
클래스 등을 사용할 경우 main 함수를 포함한 파일과 연결해야하는 파일이 여러 개일 수 있다. 이와 같이 여러 개의 파일을 연결해야할 경우 각 파일을 목적 파일로 컴파일한 후에 목적 파일들을 한 번에 링크해야 한다.
예를들어 다음과 같은 파일이 있다.
1. add.h : add 함수의 헤더 파일
2. add.cpp : add 함수를 구현한 파일
3. addmain.cpp : add 함수를 사용하는 파일
add.h
#ifndef _ADD_H_
#define _ADD_H_
#include <iostream>
int add(int a, int b);
#endif
add.cpp
#include <iostream>
#include "add.h"
int add(int a, int b) {
return a + b;
}
addmain.cpp
#include <iostream>
#include "add.h"
int main() {
std::cout << add(1, 2) << std::endl;
return 0;
}
위 세 파일은 다음과 같은 순서로 컴파일하고 링크해야 한다.
1. add.cpp 파일 컴파일
$ g++ -c add.h add.cpp
2. addmain.cpp 파일 컴파일
$ g++ -c addmain.cpp
3. add.o 파일과 addmain.cpp 파일을 링크
$ g++ addmain.o add.o -o addmain
4. addmain 파일 실행
$ ./addmain
'Linux' 카테고리의 다른 글
| [Linux] sftp (0) | 2023.08.19 |
|---|---|
| 자바에서 리눅스에 명령 내리기 (1) | 2023.01.06 |
| 리눅스 기본 명령어 (0) | 2023.01.01 |
| 우분투 20.04 SVN 서버 설정 (0) | 2022.12.29 |
| 우분투 20.04 윈도우 공유 폴더 접근하기 (0) | 2022.12.28 |