728x90
반응형
linux 에서 C언어 컴파일
Hello World 란 문자를 출력하는 test.c 파일을 생성합니다.
test.c
#include <stdio.h>
void main (void)
{
printf ("hello world!\n");
return;
}
이 파일을 실행하기 위해서는 우선 파일을 컴파일하고 결과로 나온 오브젝트 파일을 묶어서 실행파일을 만들어야 합니니다. gcc 명령을 이용해서 한다면 다음과 같습니다.
간단한 Makefile 예제
위에 예제로 사용한 test.c 파일을 컴파일하는 Makefile 입니다.
ㅠㅠ 복잡해보입니다. 간단한 test.c 파일 하나 컴파일하는데 Makefile 양이 더 많네요..ㅎㅎ 하지만 프로그램을 만들다보면 소스파일도 많아지고, 라이브러리도 가져다쓰고 하게되는데 이럴 때는 Makefile 이 정말 유용합니다.
우선 지금은 초록색으로 표시된 부분만 보시면 됩니다. "TARGET" 에 원하는 실행파일 이름, "SRCS" 에는 소스파일 이름을 나열하면 됩니다. 소스파일은 test.c 하나이고, 실행파일 이름은 원하는 이름을 넣으면 됩니다. 전 mk_test 로 설정했습니다.
#
#-----------------------------------------------------------------------------
#
# JUNGFO's simple Makefile
# Copyright (c) since 2020 jungfo@naver.com Technology.
# All rights reserved.
#
#-----------------------------------------------------------------------------
#
# Makefile
#
TARGET= mk_test
SRCS= test.c
OBJS= $(SRCS:.c=.o)
L_CPPFLAGS=
L_INCFLAGS= -I./
L_CFLAGS=
L_LDFLAGS=
L_LDLIBS=
CPPFLAGS+= $(L_CPPFLAGS) $(L_INCFLAGS)
CFLAGS+= $(L_CFLAGS)
LDFLAGS+= $(L_LDFLAGS) $(L_LDLIBS)
.PHONY: all
all: build
.PHONY: build
build: $(TARGET)
$(TARGET): $(OBJS)
$(CC) -o $@ $^ $(LDFLAGS)
.PHONY: clean
clean:
rm -f $(TARGET) $(OBJS) $(DEPEND_FILE) core*
.PHONY: distclean
distclean: clean
.PHONY: depend
depend: $(SRCS)
$(CC) -M $(CFLAGS) $(CPPFLAGS) $^ > $(DEPEND_FILE)
-include $(DEPEND_FILE)
이제 source 파일과 Makefile 이 준비되었으니 실행만 시켜주면 되겠네요.
Makefile 실행 명령 옵션은 Makefile 내에 all, build, clean, distclean, depend 를 만들어 놓았습니다. 우선은 make all 과 make clean 만 사용하도록 하겠습니다.
make all - 컴파일하고 실행파일 생성. (make 만 실행하면 기본적으로 make all 이 수행됨.)
make clean - 실행파일 및 컴파일 중 생성된 파일 삭제.
make 를 수행하고 나온 실행파일을 실행해봅니다.
728x90
반응형
'프로그래밍 > 리눅스' 카테고리의 다른 글
[리눅스/Linux] 컴파일을 위한 Makefile 간단 예제 - 여러개의 파일 (4) | 2020.12.03 |
---|---|
[프로그래밍] ASCII table, 아스키 코드표 (4) | 2020.12.03 |
[리눅스] linux 에서 listen하고 있는 port 확인하는 4가지 방법 (9) | 2020.11.30 |
[리눅스] sftp 자동화 스크립트 - sshpass (6) | 2020.11.30 |
[리눅스] sshpass download 및 install (1) | 2020.11.30 |
댓글