본문 바로가기
기타

[리눅스] g++ 로 파일 실행하기

by BtoP 2023. 8. 4.

이번에  비트 코인을 공부하면서 알게 된 것들을 적어보려고 한다.

먼저 G++과 GCC에 대해서 설명하겠다.

GCC(GNU Compiler Collections)는 주로 c, c++ 언어를 컴파일하는데 사용된다.
Objective C 및 Objective C++에도 사용된다고 하는데 이건 공부를 안해봐서 잘 모르겠다.
C++언어로 작된 .cpp 파일을 GCC로 컴파일시 GCC가 .cpp파일을 컴파일한 후 C 라이브러리로 링크하기 때문에 링크에러가 발생할 수도 있다고 한다.


G++은 실행 파일을 생성하기 위해 소스 코드의 전처리, 컴파일, 어셈블리 및 링크에 사용되는 GNU C++ 컴파일러 호출 명령이다. 

사용방법

g++ <실행할파일이름> -o <출력될이름>

출력될 이름을 지정하지 않고 해도 상관은 없다. 예를 들어 g++ <실행파일이름> 이런식으로 해도 오류가 나지 않는다.

다음은 예시를 들어서 설명하겠다.

g++ ex1.cpp -o ex1 -I /home/src/library/bitcoin/include/ -L ~/src/library/bitcoin/lib/ -lbitcoin-system -std=c++11 -L /lib/x86_64-linux-gnu/ -lpthread

앞에서부터 차례대로 설명하겠다.

 

1. g++ : G++ 컴파일러를 사용하여 C++ 소스 파일을 컴파일한다.
2. ex1.cpp : 컴파일 할 C++ 소스 파일 이름이다.
3. -o ex1 : -o 옵션 뒤에 오는 ex1은 컴파일된 바이너리 파일의 출력 이름을 지정한다.
4. -I : -I 옵션은 컴파일러에게 헤더 파일을 찾을 수 있는 특정 디렉토리를 지정한다. 
5. -L : -L 옵션은 컴파일러에게 라이브러리 파일을 찾을 수 있는 특정 디렉토리를 지정한다.
6. -l(소문자L) : -l 옵션은 컴파일 과정에서 필요한 라이브러리를 지정한다.
7. -std : -std 옵션은 컴파일러에게 사용할 C++ 표준을 알려준다. 위 코드에선 C++표준을 사용하도록 지정했다.
8. 2번째 -L : 또 다른 라이브러리 파일을 찾을 수 있는 디렉토리를 지정한다. (이런식으로 여러가지의 라이브러리 파일을 지정할 수 있다)
9. -lpthread : -l 옵션을 사용하여 POSIX 스레드 라이브러리 pthread를 사용하도록 지정했다.




이렇게 리눅스에서 g++을 사용하여 실행하는 방법을 알아보았다.