[ 직업 작업 했을때의 컴파일 옵션 ]
#gcc -fPIC -c libstrcpy2.c -m32
#gcc -m32 -shared -Wl,-soname,libstrcpy2.so -o libstrcpy2.so libstrcpy2.o
#gcc -o vulnDeadmon vulnDeadmon.c -m32 -fno-stack-protector -z execstack -fno-builtin -mpreferred-stack-boundary=4 -L ./ -lstrcpy2
[ makefile 만들기 ]
[ 설명 ]
위와같은 옵션을 가지고 컴파일을 매번 다시 해줘야하는 것을 makefile 파일로 만들어두면 편함.
변수명 설정은 C 표준과 같고, 호출은 $(변수명) 으로 호출이 가능함. (shell 명령어와도 같은기능을함)
18번째 줄부터 보면 make 명령어를 하면 all 을 default 로 하여금 make 가 됨.
all : $(TARGET) 은 all을 실행하는데 $(TARGET)이 잘 구성되어 있지 않으면 ALL 을 실행하지 않음
[ 20번째줄 ]
$(TARGET) : $(LIB_NAME) : TARGET을 구성하는데 LIB_NAME 이 제대로 구성되어 있지 않으면 LIB_NAME부터 다시 실행함
[ 23번째줄 ]
$(LIB_NAME) : $(OBJS) : LIB_NAME 을 구성하는데 OBJS가 제대로 구성되어 있지 않으면 OBJS 부터 수행함
[ 26번째줄 ]
$(OBJS) :
OBJS 를 수행함. $(CC) = gcc $(OBJ_OPTION)= -fPIC -m32 -c $(LIB_SOURCE_FILE) = libstrcpy2.c
[ 29번째줄 ]
clean :
#make clean 이란 옵션으로 실행 될수 있는 부분. 재빌드를 할때 이미 파일이 존재하고 있는 경우를 없애기 위함.
'Server Manager' 카테고리의 다른 글
apt-get update 오류중 1개 (0) | 2014.06.16 |
---|---|
[makefile] 매크로(Macro) 와 확장자(Suffix) 규칙 (0) | 2014.05.20 |
오드로이드 XU 설치 (Odroid XU installation) (2) | 2013.12.16 |
64bit CentOS 32bit 로 컴파일 하기 (0) | 2013.12.08 |
특정 파일만 제외하고 삭제하기. (0) | 2013.11.24 |