리눅스에서 C 언어를 활용하여 프로그램을 만들기 위해서는 소스코드를 작성할 줄도 알아야하지만 먼저 작성한 코드를 컴파일하여 실행할 수 있도록 만들줄 알아야 한다.
다음과 같이 간단한 C 프로그램, Hello world 를 작성하자.
$ cc -o hello hello.o
이 명령어는 object 파일인 hello.o 를 링크하는 과정을 거쳐서 hello 라는 실행파일을 만들어내라는 명령어이다.
$ ll
이제 프로그램을 실행해보자.
$ ./hello
Hello, World!
그런데 혹시 MS 계열에서 프로그래밍을 해보거나 다른 IDE(Integrated Development Environment; 통합개발환경)를 이용해본 사람이라면 Build & Run 이라는 개념을 알고 있을 것이다. 이는 컴파일과 오브젝트 파일의 링크를 자동적으로 알아서 수행하는 것을 말하는데 cc 를 이용해도 비슷하게 컴파일과 링크를 동시에 해결할 수도 있다.
$ cc -o hello hello.c
이렇게 하면 hello.c 를 컴파일하고 링크해서 곧장 hello 라는 실행가능한 파일을 만들어낸다.
아까 만들었던 hello 와 hello.o 를 삭제하고 위의 명령을 실행해보면 오브젝트 파일의 생성 없이 곧장 실행파일이 만들어지는 것을 볼 수 있다.
$ ll
cc 이외에도 gcc, g++ 등 여러가지 명령들이 존재하고, 차후에 이들 각각에 대한 공부가 필요할 듯하다.
뒤이어서는 몇몇 서브코드들과 함께 메인코드를 컴파일해야 하는 경우 cc 를 이용해서 어떻게 컴파일하는지 알아보고 더 나아가서 Make 를 사용해서 이런 작업을 하는 방법을 알아보기로 한다.
다음과 같이 간단한 C 프로그램, Hello world 를 작성하자.
// File name : hello.c #include이제 이 프로그램을 컴파일하고자 한다면 다음과 같이 입력한다.int main() { printf("Hello, world!\n"); return 0; }
$ cc -c hello.c $ ll 합계 8 -rw-rw-r-- 1 timewalker timewalker 74 2011-11-10 14:17 hello.c -rw-rw-r-- 1 timewalker timewalker 1504 2011-11-10 14:18 hello.othen I have hello.o file in current directory. This file is object file of hello.c. Now, we should link this file to make a executable file.
$ cc -o hello hello.o
이 명령어는 object 파일인 hello.o 를 링크하는 과정을 거쳐서 hello 라는 실행파일을 만들어내라는 명령어이다.
$ ll
-rwxrwxr-x 1 timewalker timewalker 6425 2011-11-10 14:18 hello
-rw-rw-r-- 1 timewalker timewalker 74 2011-11-10 14:17 hello.c
-rw-rw-r-- 1 timewalker timewalker 1504 2011-11-10 14:18 hello.o이제 프로그램을 실행해보자.
$ ./hello
Hello, World!
그런데 혹시 MS 계열에서 프로그래밍을 해보거나 다른 IDE(Integrated Development Environment; 통합개발환경)를 이용해본 사람이라면 Build & Run 이라는 개념을 알고 있을 것이다. 이는 컴파일과 오브젝트 파일의 링크를 자동적으로 알아서 수행하는 것을 말하는데 cc 를 이용해도 비슷하게 컴파일과 링크를 동시에 해결할 수도 있다.
$ cc -o hello hello.c
이렇게 하면 hello.c 를 컴파일하고 링크해서 곧장 hello 라는 실행가능한 파일을 만들어낸다.
아까 만들었던 hello 와 hello.o 를 삭제하고 위의 명령을 실행해보면 오브젝트 파일의 생성 없이 곧장 실행파일이 만들어지는 것을 볼 수 있다.
$ ll
합계 12
-rwxrwxr-x 1 timewalker timewalker 6425 2011-11-10 14:32 hello
-rw-rw-r-- 1 timewalker timewalker 74 2011-11-10 14:17 hello.c cc 이외에도 gcc, g++ 등 여러가지 명령들이 존재하고, 차후에 이들 각각에 대한 공부가 필요할 듯하다.
뒤이어서는 몇몇 서브코드들과 함께 메인코드를 컴파일해야 하는 경우 cc 를 이용해서 어떻게 컴파일하는지 알아보고 더 나아가서 Make 를 사용해서 이런 작업을 하는 방법을 알아보기로 한다.