프로그램을 작성하고 컴파일을 하기 위해선 컴파일 옵션을 이용한 명령어가 필요하다.
아무런 옵션 없이 c++로 컴파일하는 방법은 아래 게시글에 설명해 놓았다.
2022.02.19 - [Language/C++] - [C++/MacOS] 터미널에서 c++ 컴파일하기
[C++/MacOS] 터미널에서 c++ 컴파일하기
공부중인 학부생입니다. 틀린 부분이 있다면 꼭 댓글로 남겨주세요 :) 맥에서 소스파일을 컴파일하기 위해서는 GCC컴파일러가 필요하다. GCC 컴파일러는 c, c++ 컴파일러이다. Xcode를 이용하면 저절
world-developer.tistory.com
윗글에 정리해 놓은 내용과 더불어 컴파일을 할 때 사용하는 옵션들을 정리해보려고 한다.
▶ gcc 컴파일 (윗 게시글)
1. gcc 파일명(.c) : a.out 의 실행파일이 생성된다.
2. gcc 파일명(.c) -o 파일이름 : 파일이름을 가진 실행파일이 생성된다. (4번이 한번에 이루어진다.)
3. gcc -c 파일명(.c) : 오브젝트 파일(.o)이 생성된다.
4. gcc -c 파일명(.c) -o 오브젝트파일이름 : 오브젝트파일이름을 가진 오브젝트 파일(.o)이 생성된다.
gcc 오브젝트파일(.o) -o 파일이름 : 파일이름을 가진 실행파일이 생성된다.
※오브젝트 파일이란?
(링크삽입)
▶ gcc 옵션 - 기본
-o | 특정 파일명으로 실행 파일 생성, 이 옵션이 없다면 a.out이 생성된다. |
-c | 오브젝트 파일(.o) 생성한다. |
-E | 컴파일 대신에 전처리 결과를 stdout으로 출력한다. |
-S | 어셈블리 파일만 생성하고 컴파일을 종료한다. (.s 파일 생성) |
-v | verbose 모드, 컴파일의 상세한 결과를 출력한다. |
▶ gcc 옵션 - 헤더 및 매크로
-I | 해더파일(.h)을 탐색하는 디렉터리를 설정한다. #include <>에서 사용하는 해더파일을 탐색한다. |
-D[매크로] | #define [매크로], -DDEBUG이면 #define DEBUG 옵션 추가 |
▶ gcc 옵션 - 경고 및 최적화
-ansi | ANSI C표준으로 문법을 체크한다. C언어에서는 -std=c90, C++언어에서는 -std=c++98을 사용한다. |
-std=[표준] | -std=c++11 등 표준 버전을 설정하는 옵션이다. |
-W | 모호한 코딩에 대한 경고를 출력하는 옵션이다. -Wall에서 제외한 16개 경고 메세지를 출력한다. |
-Wall | 모든 모호한 코딩에 대한 경고를 출력하는 옵션이다. |
-w | 모든 경고 메시지를 제거한다. |
-Werror | 모든 경고를 에러로 간주하고 컴파일을 중단한다. |
-pedantic | ANSI C89 표준에서 요구하는 모든 경고 메시지를 출력한다. -ansi와 함께 사용한다. |
-On | 최적화 n레벨을 설정한다(O2 최적화 권장) |
▶ gcc 옵션 - 디버깅
-g | gdb 디버거 툴을 통해 디버깅할 수 있도록 정보를 생성한다. |
-pg | 프로파일을 위한 코드를 삽입한다. |
※ 프로파일링이란? 프로그램에서 어느 부분이 어느정도의 속도를 가지고 있는지, 프로그램의 최적화를 위해 각 모듈(부분) 별로 걸리는 시간을 측정하는 것이다.
▶ gcc 옵션 - 링크
-L | 링크되는 라이브러리를 탐색하는 디렉터리를 설정하는 것이다. |
-l | 링크할 라이브러리를 지정하는 것이다. |
-shared | 공유 라이브러리를 우선으로 링크한다. |
-static | 정적 라이브러리를 우선으로 링크한다. |
▶ gcc 옵션 - 32/63bits
-m32 | 32 비트 컴파일 |
-m64 | 64 비트 컴파일 |
출처: https://blueyikim.tistory.com/209
편집일자
22.02.22
'CS > Tip' 카테고리의 다른 글
[Git & Github] 로컬 브랜치 <-> 원격 브랜치 동기화 (1) | 2024.09.01 |
---|---|
vscode snippet 만들기 (1) | 2024.07.22 |
[C/C++/MacOS] GCC 컴파일러 설치하기 (0) | 2022.02.19 |
[MacOS] 터미널 커맨드라인 사용법, 단축기 (0) | 2022.02.12 |
[C/C++/MacOS] Visual studio code로 C/C++ 시작하기 (0) | 2022.02.06 |