728x90
컴파일
gcc를 활용하여 컴파일할 수 있다.
gcc hello.c
이런 식으로 컴파일을 하게 되면 a.out이라는 실행파일이 생성되게 된다.
만약 .out이 아닌 다른 실행파일을 만들고 싶다면 -o 옵션을 주면 된다.
gcc -o filename source_1.c
이런식으로 컴파일하게 되면 ‘filename’이라는 실행파일이 생성된다. filename은 사용자가 원하는 이름을 넣어주면 된다.
두 개 이상의 소스코드로 하나의 실행파일을 만들 수 있다.
아래와 같은 두 개의 c 파일이 있다고 할 때
// one.c
# include <stdio.h>
void printmsg(void); // two.c에서 정의해 줄 함수
main(){
printmsg();
}
// two.c
# include <stdio.h>
void printmsg(void){
printf("hello world!\n");
}
이 두 개의 소스코드를 이용해 three라는 이름의 실행파일을 만드려면 다음과 같다.
gcc -o three one.c two.c
이때 둘 중 하나의 소스코드를 미리 컴파일해서 object file을 먼저 만든 후 다른 소스코드와 함께 실행파일을 만들 수 있다.
gcc -c one.c // one.o 라는 object file 생성
gcc -o three one.o two.c // 이런식으로도 가능
Make와 Makefile
- Make
- 주어진 셸 명령어들을 조건에 맞게 실행하는 프로그램
- Makefile에서 정한 연관성을 유지하여 항상 최신의 소스코드에 부합하는 실행코드를 쉽게 만들 수 있도록 함
- Makefile
- 어떤 조건으로 명령어를 실행할 지 담은 파일
- 소스코드, 목적코드, 실행코드들의 연관성을 나타내고, 이전 단계의 파일이 갱신되었을 때 다음 단계의 파일을 만들기 위한 명령어 포함
Makefile의 구조
target_list : dependency_list
command_list
- target_list : 새롭게 만들고자 하는 파일명
- dependency_list : target_list를 만들기 위한 파일들
- command_list : dependency_list에서 나열된 파일들로 target_list를 만들기 위해 실행되어야 하는 명령어 라인 반드시 TAB을 사용하여 들여쓰기를 해야한다.
이에 대한 예시는 다음과 같다.
hello: hello.c
gcc -g hello hello.c
hello 라는 파일을 만드는데, 필요한 파일은 hello.c이며 명령어는 gcc -g hello hello.c 이다.
여기서 make를 실행하면 현재 디렉터리에서 Makefile이라는 이름의 파일을 찾고 Makefile내에 기술되어 있는 규칙에 따라 최종 파일을 만든다.
꼭 Makefile이라는 이름을 쓸 필요 없고, -n 옵션을 통해 파일명 별도로 지정 가능하다.
make -n makefile_hello
위에 대한 전체적인 예시는 다음과 같다.
$ cat Makefile
hello: hello.c
gcc -o hello hello.c
$ make
gcc -o hello hello.c
디버그
GNU에서 만든 gdb를 활용하여 소스 코드의 디버깅 가능하다.
-g 옵션을 주면 된다.
gcc -g -o test test.c
[참고 도서]
리눅스 프로그래밍 기초 : 네이버 도서
네이버 도서 상세정보를 제공합니다.
search.shopping.naver.com
728x90
'Linux > Linux Programming' 카테고리의 다른 글
리눅스 기초 [1] 리눅스의 주요 특징 (0) | 2022.12.22 |
---|