본문 바로가기

IT/Linux

Ubuntu (리눅스) 프로그램 만들고 실행하기

리눅스에서 프로그램을 만들어서 실행하는 과정은 다음과 같습니다.

항상 처음 시작하는 것이 제일 어렵고 갈수록 쉬워집니다.

(항상 그런 건 아니고 ...^^ 계단이라고 표현하는 것이 좀 더 정확할 듯 합니다. )

 

 

1. 에디터로 프로그램 소스를 만든다.

2. MakeFile 로 컴파일을 한다.

3. 실행한다.

 

 

보통 많이 쓰는 Ubuntu 에서 해보도록 하죠.

저는 Virtualbox 에서 Ubuntu 14.04 를 설치해서 쓰고 있습니다.

설치하는 방법은 인터넷을 검색...^^

설치방법이 먼저 링크로 딱 되어 있으면 좋겠지만 다음에 올리도록 하고...

(햐...올려야 할 것들도 많네요...)

 

1. 에디터로 프로그램소스 만들기

우선 터미널을 띄웁니다.

vim test.c 라고 입력하면 test.c 라는 이름을 가진 비어있는 파일을 하나 열어줍니다.

거기서 i 를 입력하면 편집을 시작할 수 있습니다. ^^

#include <stdio.h>

int main(int argc, char **argv) {

int i = 0;

int k = 0;

for (k = 0; k < 10; k++)

{

printf("Count %d %d\n", k, i);

}

return 0;

}

 

소스는 이렇게 입력합니다.

그리고는 ESC 키를 누르고 :wq 를 입력하면 저장되고 종료됩니다.

리눅스의 기본 에디터는 이렇게 동작합니다.

 

 

출력결과는 어떻게 나올까요?

Count 0 0

Count 1 0

Count 2 0

...

Count 9 0

 

이렇게 나오겠죠?

 

소스를 만들었으니 MakeFile 을 만듭니다.

그렇게 어렵지 않으니 따라해보시기 바랍니다.

변수처럼 지정할 때는

X = Y  처럼  =(등가) 을 사용합니다.

기본적인 의존성을 나타내는 건

X : Y  처럼 : (콜론)을 사용합니다.

그리고 의존성을 어떻게 할 것인지 명령을 그 밑에 쓰면 됩니다.

 

초간단 예제입니다.

SOURCES = test.o

testapp : test.o

gcc -o testapp test.o

test.o : test.c

gcc -c test.c

clean :

rm $(SOURCES) 

 

SOURCES = test.o

이것은 그냥 변수처럼 생각하시면 됩니다. test.o 라는 스트링을 SOURCES 라는 변수에 담겠다 라는 의미입니다.

 

testapp : test.o

이제부터 의존성입니다.

testapp 이라는 것은 test.o 라는 것에서 기인한다.

그러면 testapp 은 test.o 로부터 어떻게 만드는 것이냐... 그 명령이 바로

 

gcc -o testapp test.o

입니다.  -o 옵션은 실행파일의 이름을 정하는 것입니다.

gcc 컴파일에 대해서는

http://egloos.zum.com/sunnmoon/v/1825047

여기를 참고하시면 되겠습니다.

 

test.o : test.c

그러면 test.o 는 어디서 왔느냐...test.c 로부터 만들어져야 합니다.

test.c 를 test.o 로 만들기 위해서는 어떤 명령이 필요하느냐...

 

gcc -c test.c

컴파일이라는 과정을 여기서 거칩니다.

위에 입력한 소스를 기계가 이해하는 언어로 변경시키는 과정입니다.

 

clean :

rm $(SOURCES) 

이건 SOURCES 라는 걸 지우라는 명령입니다.

근데 잘 동작하지는 않는 것 같네요.

다르게 써야 할 듯...이후부터는 한번 해보시는 것이 최선입니다.

절대 귀찮아서 안하는 것이 아니라 숙제입니다. ^^...

 

아래 동영상을 올려놓았습니다. 보시면서 따라해보는 것도 좋을 것 같습니다.

 

참고사이트 :

MakeFile 만들기 : http://www.cs.colby.edu/maxwell/courses/tutorials/maketutor/