C 컴파일러 확인 |
- 사용자가 사용하는 고급 언어(ex:c 언어)를 기계어(실행 파일)로 변환하는 과정을 컴파일 - 컴파일을 해주는 소프트웨어를 '컴파일러' 라고 함 - 리눅스 자체가 C언어로 만들어졌고, C언어를 많이 사용하므로 C컴파일러가 설치되어 있음(?) - 리눅스의 C컴파일러는 gcc. |
====================================================================== sjw-lenovo@sjwlenovo-Lenovo-U310:~$ aptitude show gcc |
간단한 C 프로그램 컴파일 및 실행 |
1) C 프로그램 작성 ====================================================================== sjw-lenovo@sjwlenovo-Lenovo-U310:~/linux_ex/ch9$ vi hello.c #include <stdio.h> main(){ printf("Hello. World!\n"); } */ ====================================================================== 2) C 프로그램 컴파일하기 - 컴파일 명령은 gcc - 'gcc 소스 파일명' 과 같이 입력 - 실행 파일의 이름은 사용자가 지정하지 않으면 기본적으로 a.out 로 생성 ====================================================================== sjw-lenovo@sjwlenovo-Lenovo-U310:~/linux_ex/ch9$ ls ====================================================================== 3) C 프로그램 실행하기 - a.out 을 실행하면 됨 - 만약 'a.out' 을 찾을 수 없다고 나오면 현재 디렉터리가 경로에 설정되지 않았기 때문 - 경로를 지정해서 하면 실해이 됨 ====================================================================== sjw-lenovo@sjwlenovo-Lenovo-U310:~/linux_ex/ch9$ a.out ====================================================================== 4) 실행 파일명 변경하기 - 'gcc'로 생성한 기본 실행 파일은 'a.out' - 사용자가 원하는 이름으로 지정하려면 '-o' 옵션을 사용하면 됨 ====================================================================== sjw-lenovo@sjwlenovo-Lenovo-U310:~/linux_ex/ch9$ ls ====================================================================== |
make 명령 사용하기 - gcc 로 일일이 컴파일하여 하나의 실행 파일로 만드는 것은 매우 번거로운 작업 - 이를 간단하게 해결할 수 있는 방법으로 make 명령이 있음 - 'make' 명령은 makefile(또는 Makefile)에 설정된 정보를 읽어서 여러 소스 파일을 컴파일하고 링크하여 최종 실행 파일을 만들어줌 - 오픈 소스 소프트웨어는 소스코드와 함게 makefile을 배포함 |
1) 소스 파일 준비 ====================================================================== /* one.c #include <stdio.h> */ ====================================================================== ====================================================================== /* two.c #include <stdio.h> */ ====================================================================== 2) makefile 작성 - makefile 은 어떤 소스를 읽고 어떻게 컴파일하여 최종적으로 어떤 실행 파일을 만들면 되는지를 make 명령에 알려주는 설정 파일 ====================================================================== sjw-lenovo@sjwlenovo-Lenovo-U310:~/linux_ex/ch9$ vi makefile /* makefile TARGET=one */ ====================================================================== - makefile 에서 TARGET이나 OBJECTS는 사용자가 임의로 정한 매크로 - gcc 에서 -c 옵션은 .c 파일을 컴파일하여 오브젝트 파일인 .o 파일을 생성 - 이 .o 파일들을 연결하여 실행 파일을 만드는 것 - 기존의 .o 파일들 모두 삭제하고 make 명령을 실행 ====================================================================== sjw-lenovo@sjwlenovo-Lenovo-U310:~/linux_ex/ch9$ ls |