프로그래밍 언어/C C++

gcc 를 이용해 c언어 간단히 컴파일하기

트리맨스 2021. 3. 23. 18:07
반응형

 

 C언어를 처음 접하게 되면 대부분 윈도우의 비주얼 스튜디오 또는 VScode로 시작할 것이다. 여기서는 컴파일 버튼이 기본적으로 탑재되어 있어 편하게 코드 관리와 컴파일을 할 수가 있다. 이와 비슷하게 리눅스 터미널에서도 컴파일을 할 수가 있다. gcc 라는 프로그램인데, 예전부터 계속 사용되었던 프로그램이다.

 

빠르게 실행파일 만들기


프로그램 컴파일의 과정을 정말로 간략히 설명하면, .c로 끝나는 파일들을 .o로 만들어 목적 파일들을 만든다. 마지막으로 .o 파일들(라이브러리 파일이 있으면 그들도 포함) 을 실행 파일로 만들게 된다.

 

c 파일이 한개이고, 빠르게 결과를 보고 싶을 때는 다음과 같은 명령어를 작성한다.

gcc "c파일이름" /  gcc -o "실행파일이름" "c파일이름"

왼쪽 명령어를 입력하면 a.out 이라는 실행 파일이 생성된다. 오른쪽 명령어는 실행파일의 이름을 따로 지정해 줄 수 있다. 위의 명령어들은 목적 파일을 만드는 과정이 생략되어 보이지만, 내부적으로는 목적 파일을 만든 뒤에 목적 파일들을 컴파일 하는 과정이 숨겨져 있다.

 

./a.out

위의 명령어를 입력하면 프로그램이 실행된다.

 

만약 c 파일이 2개 이상일 경우에는 다음과 같은 명령어를 입력한다.

gcc "파일1" "파일2" ...  / gcc *.c

왼쪽 명령어는 파일을 일일이 지정하고, 오른쪽 명령어는 폴더 내 모든 c 파일들을 컴파일한다.

 

만약 프로그램의 결과가 만족스럽지 못하거나 메모리 누수가 의심될 경우, 컴파일 할 때 오류 체크를 할 수 있는 옵션이 있다.

gcc -Wall -Wextra -Werror "파일명"

-Wall -Wextra -Werror 옵션을 넣어주게 되면, 모든 에러를 잡아서 출력하게 된다. 가장 엄격한 기준으로 코드의 에러를 잡아낼 수 있는 옵션이다. 또한 lldb 또는 valgrind같이 디버그 또는 메모리 누수를 확인하는 프로그램을 사용해야 할 경우 -g 옵션을 붙여주자. -g 옵션은 실행 파일의 디버그가 가능하도록 하는 옵션이다.

 

실무에서는 한 개의 프로그램을 위해서 각 기능을 나눈 여러개의 파일들로 이루어져 있을 것이다. 이를 컴파일 하기 위해서 명령어를 일일이 치기는 상당히 힘들다. 이것을 간편하게 하기 위해 Makefile 이라는 기능이 있다. 이에 대한 포스팅은 다음에 설명을 할려고 한다.

 

반응형