반응형
g++ 은 오픈소스 c++ 컴파일러이다. GNU Compiler Collection (GCC) 의 일부로, 주로 Linux와 같은 유닉스 계열 시스템에서 사용된다. 다양한 옵션을 통해 컴파일러 동작을 제어할 수 있고, 옵션은 아래와 같다.
1. -o [output] : 실행 파일의 이름 지정
- 예시: g++ -o myprogram source.cpp
2. -c : 링킹 없이 개별 오브젝트 파일 생성
- 예시: g++ -c source.cpp
3. -Wall : 컴파일 시 발생할 수 있는 대부분의 경고를 활성화
- 예시: g++ -Wall source.cpp
4. -g
디버깅 정보를 포함하여 컴파일한다. 디버거(gdb 등)에서 프로그램을 디버깅할 때 사용된다.
- 예시: g++ -g source.cpp
5. -O[n]
최적화 옵션이다. n은 최적화 수준을 나타내며, 0에서 3까지 지정할 수 있다.
- -O0: 최적화를 하지 않음 (기본값).
- -O1, -O2, -O3: 점차 높은 최적화 수준.
- 예시: g++ -O2 source.cpp
6. -std=[standard]
사용할 C++ 표준을 지정한다.
- 예시: g++ -std=c++11 source.cpp
- 사용할 수 있는 표준: c++98, c++03, c++11, c++14, c++17, c++20 등.
7. -L[path]
- 링크 시 추가할 라이브러리 경로를 지정합니다. 외부 라이브러리를 사용할 때 라이브러리 위치를 지정하는 데 유용합니다.
- 예시: g++ -L/usr/local/lib source.cpp
8. -I[path]
- 헤더 파일을 찾을 경로를 지정합니다. 프로젝트에 포함된 헤더 파일이 표준 경로 외의 위치에 있는 경우 사용합니다.
- 예시: g++ -I/usr/local/include source.cpp
9. -l[library]
- 링크할 라이브러리를 지정합니다. -l 옵션 뒤에 라이브러리 이름을 붙이면, 컴파일러는 해당 라이브러리를 프로그램에 링크합니다.
- 예시: g++ source.cpp -lm (여기서 -lm은 수학 라이브러리 libm을 링크함)
10. -shared
- 공유 라이브러리를 생성할 때 사용됩니다. 동적 라이브러리를 만들고자 할 때 유용합니다.
- 예시: g++ -shared -o libmylib.so source.cpp
11. -static
정적 링크를 강제하여 프로그램이 정적 라이브러리와 함께 컴파일되도록 한다.
- 예시: g++ -static source.cpp
12. -fPIC
- 포인터 독립적인 코드(PIC)를 생성하여 동적 라이브러리(공유 라이브러리)를 만들 때 사용합니다.
- 예시: g++ -fPIC -shared -o libmylib.so source.cpp
13. -v
컴파일 과정을 자세하게 출력한다.
- 예시: g++ -v source.cpp
14. -E
전처리만 수행하고 결과를 출력한다.
- 예시: g++ -E source.cpp
15. -S
어셈블리 코드를 생성한다.
- 예시: g++ -S source.cpp
'코딩 > 기타 코딩 노트' 카테고리의 다른 글
Make 와 Makefile (0) | 2024.09.07 |
---|---|
맥에서 Docker 사용 시작하기 (0) | 2024.09.05 |
우분투에서의 포토샵 대안, 김프 사용하기 (0) | 2021.11.10 |
깃헙 레파지토리 폴더명 (디렉토리) 변경하기 (0) | 2020.12.15 |
java의 Access Modifier (1) | 2020.11.12 |
댓글