blueecho's collection

누군가에게 "당신은 무엇을 잘하십니까?"라는 질문을 들었을때 바로 대답할것을 만들어보자~!!
        
분류 전체보기 (267)
NeWs (21)
배움생활 (107)
리눅스 (51)
SoC (29)
외부스터디 (2)
학교수업관련 (3)
일본어공부 (1)
ETC (21)
취미생활 (118)
끄적끄적 (5)
인생설계 (12)
Wish list (4)
리눅스 연구실 생활 자전거 일본소설 Fedora 사진 영화감상 솔카당 연구실생활 지름신
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
블로그 이동하였습니다.

 

배움생활/리눅스에 해당하는 글 51개
2006.01.04   make (4) 
2006.01.03   make (3) 
2005.12.28   make (2) 

  make (4) | 2006. 1. 4. 19:29 | 배움생활/리눅스   
1. 파일이름에 대한 *, ?, [ ] 등을 사용할 수 있다. 또한 *를 처음으로 사용하는 경우는 .으로 시작하는 파일을 포함한 파일도 포함하게 된다.
2. make는 각각의 명령행을 해당 쉘에서 각각 실행하는 형태를 취한다. 그러므로 둘 이상의 연속적인 명령을 사용할때는 ';'를 사용하여 표현한다. (특히 스크립트들...)

cd output;rm * ( 현재 디렉토리의 하위 디렉토리인 output으로 들어가 모든 파일을 지운다.)

또는

cd output;\
rm *

3. 역슬래쉬 대신에 하나의 긴행으로 입력하는 것도 가능하다.
4. cd나 exit와 같은 내장명령들은 단지 자신들이 위치한 행에서만 실행된다. 따라서 make를 중간에 exit로 끝내거나 할 수 없다.
5. 쉘 명령에서 $$표시는 역슬래쉬두개(\\)처럼 동작하게 된다.
6. 프로세스 번호를 표시하는 쉘변수 $$는 쉘명령에서는 $$$$로 표시한다.
7. 명령어 가장 앞에 -를 두면 오류가 발생하더라도 무시하고 진행한다.
8. 전체적으로 오류를 무시하려면 .IGNORE 타겟을 만들거나 make 실행시 -i옵션으로 실행하면 오류를 무시하게 된다. (가능은하지만 사용을 권하지는 않는다.)
9. -k 옵션 뒤에 있는 것에 대해서는 오류를 무시하게 된다. ( $make -k plot_propt plot_win 의 경우 plot_propt의 오류는 무시하게 된다.)
10. 포팅이 가능한 기술 파일을 작성하기 위해서 기본 쉘인 본쉘을 사용하고 다른 쉘의 특수기능을 사용하지 않도록 한다. 본쉘의 명령을 이용하고 기술파일의 첫부분에서 SHELL=/bin/sh 를 정의해 본쉘을 사용하도록 한다.
11. 다른 쉘이나 perl, awk등의 다른 언어를 사용하는 명령의 경우 별도의 파일로 분리하고 기술 파일에서 이를 실행시킨다.,
12. 경로명의 경우 기술파일에 직접 작성하는 경우도 있지만 프로젝트의 관리차원에서 모든 사용자에게 경로명에 대한 환경변수를 지정후 기술파일에는 지정된 환경변수를 사용하는 것이 좋다.

'배움생활 > 리눅스' 카테고리의 다른 글

자우르스에서 개발환경구축  (0) 2006.01.31
make (5)  (0) 2006.01.23
make (3)  (0) 2006.01.03
make (2)  (0) 2005.12.28
make (1)  (0) 2005.12.27


  make (3) | 2006. 1. 3. 20:39 | 배움생활/리눅스   
1. 소스 파일(*.c등)을 컴파일 하면 동일한 이름을 가지는 오프젝트 파일을 만든다.
2. 컴파일러의 종류에 의해 오브젝트 파일의 경우는 각 모듈(함수)의 이름을 그대로 사용하는 경우와 '_'을 추가하는 경우가 생긴다. ( ex> intake -> _intake 등...)
3. 라이브러리 >> 파일 >> 모듈
4. 라이브러리 내에 파일이 여러개가 묶여 있을경우 원하는 부분만 사용할 경우는 사용하는 "라이브러리 이름 (파일이름)" 매크로의 경우 "{LIB}(파일이름)"의 형태로 된다. 예를 들면 'ar r libtemp one.o two.o'로 만들어진 libtemp라는 라이브러리에서 two.o만 사용할 경우는 "libtemp(two.o)"라고 써서 사용한다. (시스템V의 경우는 하나의 이름만 사용할 수 있다.)
5. 일부 make 버젼에서는 파일에 관계없이 특정 모듈(함수)를 참조할 수도 있다. ex> libtemp((_calc))
6. C소스 파일이 변경되었을때 라이브러리를 갱신하려면 다음과 같이 한다. 이 예제는 소스가 변경되었을때 라이브러리를 갱신하는 예제이다.
.c.a:
$(CC) -c $(CFLAGS) $<
ar rv $@ $*.o
rm -rf $*.o
7. 라이브러리 관리를 위해서 간단한 기술 파일 항목을 이용하여 라이브러리를 관리할 수 있다. 갱신이 될때 알려준다.
libtemp: libtemp(one.o) libtemp(two.o)
echo "$@ is now up-to-date"
8. "libtemp(one.o) : /usr/include/stdio.h" 이 경우는 libtemp는 /usr/include/stdio.h가 one.o가 라이브러리에 통합된 마지막 시점 이후에 변경되면 갱신된다.
9. 이중콜론의 경우는 기본적으로 makefile내에서 동일한 타겟에 대해서 두번 정의하는 것을 허용하지 않는 다는 것을 피하기 위해서, 동일한 타겟에 대해서 다시 정의할 수 있다. make는 두 항목을 확인후 필요항목에 대한 명령을 실행하게 된다.
10. NULL확장자는 일부 make에서 하나의 확장자만을 사용하여 정의 가능하다. 초반 기술 파일에서 ".c: ~~~" 처럼 만든다면 기본 규칙( "$(CC) $(CFLAGS) $(LDFLAGS) $< -o $@" )로 실행하게 되는 것을 말한다. 만약 "make program"이라 했다면 "cc -O program.c -o program"으로 실행이 된다.
11. -p옵션의 경우 모든 옵션 및 매크로, 확장자 규칙, 타겟을 출력하는 옵션이다. 사용자가 가지고 있는 기술 파일의 영향을 받지 않은 것들을 보려면 "-f"옵션을 더 붙이도록 한다. ( make -fp, GNU make의 경우는 make -p -f)

'배움생활 > 리눅스' 카테고리의 다른 글

make (5)  (0) 2006.01.23
make (4)  (0) 2006.01.04
make (2)  (0) 2005.12.28
make (1)  (0) 2005.12.27
wxDev-CPP 설치 가이드  (0) 2005.12.20


  make (2) | 2005. 12. 28. 17:21 | 배움생활/리눅스   
1. .SUFFIXES는 make가 중요하게 여길 확장자를 나타낸다.
2. $< 확장자 규칙에서만 사용될수 있다는 점을 제외하면 $?과 같다.
3. 모든 프로그램에 -g(디버그)와 같은 옵션을 사용할 경우는 '$ make program CFLAGS=-g' 또는 makefile에서 'CFLAGS = -g' 그러면 이 옵션은 모든 컴파일러에 적용된다.
4. CFLSGS에서 여러 옵션을 줄때는 " "로 묶어주면 된다.
5. CFLAGS의 예외는 -l옵션이다. -l옵션은 파일이름이 바로 뒤에 따라야 하기 때문에 전달할수가 없다. 별도의 매크로를 만들어서 전달하도록 한다.
6. CFLAGS를 사용할때는 make가 파일이름과 변경시간에서만 정보를 얻는다는 점을 주의해야 한다.
7. 'cp $< $*.tmp'에서 main.c가 적용될 경우는 'cp main.c main.tmp'로 바뀌게 된다. (기본적으로 $*은 최근 변경된 파일을 말하지만 확장자 규칙에서만은 필요항목의 파일이름만을 표시한다.)
8. SCCS의 파일(s.*.c)을 다룰때는 확장자 규칙에서 '.c~.o:'로 표현해 준다. $s의 경우 SCCS파일의 경우는 s.*로 변경되어야 하나 일반 파일이름으로 대체된다.

'배움생활 > 리눅스' 카테고리의 다른 글

make (4)  (0) 2006.01.04
make (3)  (0) 2006.01.03
make (1)  (0) 2005.12.27
wxDev-CPP 설치 가이드  (0) 2005.12.20
리눅스 에서 iso 이미지 화일 마운트 하기  (0) 2005.11.21


#1 #··· #12 #13 #14 #15 #16 #17
 
     
- Home
- Guestbook
- Manage - Location
- Tag - Post