10Day Study
[[[[[개발 도구]]]]]
메이크파일 문법
-k : 에러를 발견 했더라도 멈추지 않고 계속 진행
-n : 실제로 작업을 수행하지 않고 어떤 작업을 수행할 것인지 출력한다
-f < 파일 이름> : 메이크파일로 이 파일을 사용함
make 실행시 첫번째 대상이 make 됨(예: all이 맨 첨이면 all)
make 파일안에 종속표현(:)
myapp: main.o 2.o 3.o => myapp는 main.o와 2.o와 3.o에 종속
all: myapp myapp.1 => 응용프로그램이 바이너리 파일 myapp와 메뉴얼 페이지 myapp.1로 이루어 질때
!!중요!!
메이크 파일은 매우 이상한 문법이다.
모든 법칙은 탭으로 시작하는 줄로 작성된다. 공백은 안 된다. 여러 개의 공백과 탭은 매우 유사해 보이고, 메이크파일 이외 거의 모든 분야의 리눅스 프로그래밍에서 공백과 탭은 구분하지 않기 때문에, 이러한 문법은 문제를 일으킬 수 있다. 또한 메이크파일의 마지막 줄에 있는 공백 때문에 make 명령이 실패할 수도 있다.
현재 이러한 문법을 고수하며 존재하는 메이크파일이 수도 없이 많다. 그러므로 조심해야 한다. 다행스럽게도 탭이 빠져서 make 명령이 작동하지 않는 경우가 상당히 자주 발생함으로 안될때는 탭 검사를 해보자
메이크 파일의 주석은? #
make 특별 내부 메크로
$? : 현재 대상보다 더 최근에 변경된 파일 이름
$@ : 현재 대상의 이름
$< : 현재 파일 이름
$* : 접미사(suffix)를 제거한 현재 파일 이름
앞에 -를 지정하면 make는 에러를 무시
앞에 @를 지정하면 표준 출력으로 표시 안 함
이전 명령이 성공해야 다음 명령을 실행 조건은 &&로 표시(and 기능)
make -p => make의 내장 법칙 보기
cpp 확장자(suffix)를 컴파일 하기
.SUFFIXES: .cpp
.cpp.o:
$(CC) -xc++ $(CFLAGS) -I$(INCLUDE) -c $<
%.cpp: %o
$(CC) -xc++ $(CFLAGS) -I$(INCLUDE) -c $<
위 2개는 같은것임
라이브러리 관리하기 예: 510페이지 참조
RCS => 소스 코드 관리(형상관리) 1인용
rcs 제어 초기화
$ rcs -i important.c => 나갈때는 Ctrl+D 또는 .
결과는 rcs는 ,v 확장자를 가진 새로운 읽기 전용 파일을 만듬
!!중요!!
RCS 파일을 별도 디렉토리에 저장하고 싶다면, 단순히 rcs를 처음 사용하기 전에 RCS라는 하위디렉토리를 만들면 된다. 모든 rcs 명령은 자동으로 rcs 파일을 위해 RCS 하위 디렉토리를 사용함
co => 파일 변경 하기전 체크 아웃
co important.c => 최신 버전으로 복구
co -l important.c => 소스 수정을 위한 읽기 전용 해제
ci => 소스 변경 저장(기존 소스 파일이 지워짐)
ci important.c
복구(버전 1.1로 복구)
co -r1.1 important.c
rlog important.c => 파일의 변경 사항 요약 보기
rcsdiff -r1.1 -r1.2 important.c => 버전 1.1과 1.2를 비교해 보기
개정 자동 식별 추가
static char *RCSinfo = "$Id$"; => 소스안에 추가
실행파일의 개정 자동 식별 하기
$ ident ./important
CVS => 인터넷을 통한 소스 코드 관리(형상관리) 다인용
cvs 초기 디렉토리 만들기
mkdir /usr/local/repository
cvs 초기화
cvs -d /usr/local/repository init
현재 디렉토리에 있는 소스를 /usr/local/repository/wrox/chap9-cvs에 저장
cvs import -d /usr/local/repository/ -m"Initial versoin of Simple Project" wrox/chap9-cvs wrox start
밑에 cvs의 -d 옵션을 제거하기 위해서 해야할 일
export CVSROOT=/usr/local/repository
cvs로 체크 후 갖고오기
cvs checkout wrox/chap9-cvs
cvs로 비교
cvs diff
cvs로 뭘 체크하는지 보기
cvs commit
세부사항 보기
cvs rdiff -r1.1 wrox/chap9-cvs
cvs 업데이트
cvs update -Pd wrox/chap9-cvs
cvs 네트워크로 액세스 => 527페이지 참조
diff로 차이점 목록 만들기
diff file1.c file2.c > diffs
file1.c와 diffs를 이용해서 패치
patch file1.c diffs
패치 원복하기
patch -R file1.c diffs
spec 파일 빌드하기
rpmbuild -ba myapp.spec
2009년 3월 10일 화요일
피드 구독하기:
댓글 (Atom)
댓글 없음:
댓글 쓰기