이글루스 | 로그인  


파일 Read only 해제 방법

attrib -r b:\public\jones\*.* /s

A 드라이브에서 확장명이 .bak인 파일을 제외하고 기본 디렉터리의 모든 파일이 포함된 디스크를 연결하는 것을 고려해 보십시오. xcopy를 사용하면 기록 속성으로 표시된 파일만 복사할 수 있으므로 복사할 파일에 대해 기록 속성을 설정해야 합니다. 먼저 드라이브 A의 모든 파일에 대해 기록 속성을 설정해야 합니다. 그리고 확장명이 .bak인 파일의 기록 속성을 해제해야 합니다. 예를 들어, 다음과 같이 입력합니다.

출처 : http://okjungsoo.tistory.com/entry/Attrib

by 예섬수진 | 2009/08/28 16:58 | Computer Basic | 트랙백 | 덧글(0)

GCC]gcc compile option

[gcc 컴파일]

1) gcc 파일명(*.c) : Default로 out 파일이 생성된다. (ex a.out)
2) gcc -c 파일명(*.c) : 오브젝트 파일을 생성한다.
3) gcc -c 오브젝트_파일명(*.o) 파일명(*.c)
    gcc -o 실행파일명(*.out) 오브젝트_파일명(*.o)
 

4) gcc -o 실행파일 파일명(*.c) : 실행 파일을 만든다. (3번을 한줄로...)

    (소스 파일 컴파일 → 오브젝트 파일 생성 → 실행파일 생성 → 오브젝트 파일 삭제) 

 

===================================================================================================

 [gcc 옵션]

1. -Wall 옵션 : 모든 모호한 코딩에 대해서 경고를 보내는 옵션
2. -W 옵션 : 합법적이지만 모호한 코딩에 대해서 경고를 보내는 옵션
3. -W -Wall 옵션 : 아주 사소한 모호성에 대해서도 경고가 발생
4. O2 옵션 : 최적화 레벨 2로 설정. (대부분의 최적화를 시도)
5. -E 옵션 : 전처리 과정의 결과를 화면에 보이는 옵션 (전처리과정 중 발생한 오류를 검증)
                 ※ enhanced Tip: --save-temps 옵션 
 

6. -S 옵션 : cc1으로 전처리된 파일을 어셈블리 파일로 컴파일까지만 수행하고 멈춘다. (*.s)

7. -c 옵션 : as에 의한 어셈블까지만 수행하고 링크는 수행하지 않는다.
8. -v 옵션 : gcc가 컴파일을 어떤 식으로 수행하는지를 화면에 출력한다.
9. --save-temps 옵션 : 컴파일 과정에서 생성되는 중간 파일인 전처리 파일(*.i)과 어셈블리 파일(*.s)을 
                                 지우지 않고, 현재 디렉토리에 저장한다. (오류 분석에 사용)

 ===================================================================================================

 [cpp0 옵션]
: 소스내에서 사용된 헤더 파일과 define 매크로와 관련된 옵션들이다.
  전처리 과정에서 오류가 발생한다면 cpp0 옵션들을 점검해야 한다.

 1) -l 옵션 : 전처리 과정에서 헤더 파일을 탐색하는 기본 디렉토리를 추가할 때 사용하는 옵션
2) -include 옵션 : 헤더 파일을 소스내에 추가할 때 사용한다.
3) -D[매크로] 옵션 : 매크로를 외부에서 define 할 때 사용한다.
4) -D[매크로]=[매크로 값] 옵션 : 소스 내에 #define [매크로] [매크로 값] 옵션을 추가한 것과 동일하다.

5) -U[매크로] 옵션 : -D와 반대로 소스 파일 내에 #undef[매크로] 옵션을 추가한 것과 동일하다.

6) -M / -MM 옵션 : -M 옵션 - make를 위한 소스 파일의 모든 종속 항목을 출력
                            -MM 옵션 - 기본 include 디렉토리에 있는 헤더 파일은 빼고 종속 항목을 출력한다.

 7) -nostdinc 옵션 : 디폴트 include 디렉토리(usr/include)에서 헤더 파일을 탐색하지 않고,
                           -l 옵션으로 추가한 디렉토리에서만 헤더 파일을 찾는다.

 8) -C 옵션 : -E 옵션과 함께 사용하며, 전처리 과정에서 주석을 제거하지 않는다.
9) -Wp,[옵션들] 옵션 : 만약 cpp0와 gcc의 옵션이 같은 것으로 중복되면 gcc 옵션으로 해석되므로...

                                gcc의 해석을 거치지 않고 바로 cpp0 옵션으로 전달하고 싶을 때 사용한다.        

 ===================================================================================================

 [cc1 옵션]
: "C언어 옵션, 경고 옵션, 최적화 옵션, 디버깅 옵션"의 4가지 종류
  "경고 수위 조절 or 최적화 수위 조절"을 하고 싶을 때 사용한다.

 1. C언어 옵션 : C언어 종류와 표준에 관련된 옵션
   1) -ansi 옵션 : ANSI C 표준에 부합하는 소스를 작성하고자 할 때 사용하는 옵션 
   2) -std=[C 표준들] 옵션 : 기타 다른 표준들을 지정하고자 할 때 사용한다.
   3) -traditional 옵션 : 오래된 Traditional C 문법으로 문법을 검사한다.
   4) -fno -asm 옵션 : gnu89 문법을 바탕으로 asm, inline, typeof 키워드를 사용하지 않기를 원할 때 
                               사용한다.
    

2. 경고 옵션 : cc1의 옵션을 조정하여 경고 수위를 조절할 수 있다.
   1) -W / -Wall 옵션 (gcc 옵션 참고)
   2) -w(소문자) 옵션 : 모든 경고 메시지를 제거한다.
   3) -Werror 옵션 : 모든 경고를 컴파일을 중단하는 오류로 취급한다. 

                           (경고가 하나만 나와도 컴파일이 중단된다.)

   4) -pedantic 옵션 : ANSI C89 표준에서 요구하는 모든 경고 메시지를 표시한다.
   5) -pedantic-errors 옵션 : ANSI C89 표준에서 요구하는 모든 오류 메시지를 표시한다.
   6) -Wtraditional 옵션 : 소스가 ANSI C와 K&R C 간에 서로 다른 결과를 가져올 수 있는 부분이 있다면 
                                  경고한다. 

3. 최적화 옵션 : ⓐ 실행 파일의 크기를 줄여 메모리와 하드디스크의 사이즈를 절약 (큰 의미 X)
                         ⓑ 실행 파일의 크기를 줄여 실행 속도를 향상시키는 것.

    1) -O0 옵션 : 최적화를 수행하지 않는다.
   2) -O1 옵션 : -O0보다는 조금 낫다.
   3) -O2 옵션 : 가장 많이 사용하는 옵션. 일반 응용 프로그램이나 커널을 컴파일 할 때 사용
                      (거의 대부분의 최적화를 수행한다.)

   4) -O3 옵션 : 가장 높은 레벨의 최적화. 모든 함수를 인라인 함수와 같이 취급한다.              
                      (Call 인스트럭션은 사용 X. but, 되도록이면 사용하지 않는 것이 좋다.
                          → 너무나 많은 소스의 변경이 가해지기 때문에 왜곡이 발생할 위험이 있다.)

   5) -O5 옵션 : 사이즈 최적화를 실행한다. (공간이 협소한 곳에서 사용 - 임베디드 시스템)

 

 4. 디버깅 옵션
   1) -g 옵션 : gdb에게 제공하는 정보를 바이너리에 삽입한다.
                (-g 옵션을 사용하지 않고 gdb로 디버깅하면, 역어셈 → 어셈블리 코드로만 디버깅 가능)

   2) -pg 옵션 : 프로파일을 위한 코드를 삽입한다.
                 (-pg 옵션으로 컴파일 → gmon.out(프로파일 정보) → gprof로 gmon.out 파일 분석)

===================================================================================================

[as의 옵션]
: gcc는 as의 옵션에 대해서는 알지 못한다. -Wa,[as 옵션들] 형식으로 gcc를 거치지 않고
  바로 전달해야 한다. -Wa, -al, -as와 같은 형식으로 사용하면 as에게 -al -as 옵션이 같이 전해진다.

 -Wa,[as 옵션들]
1) -al 옵션 : 어셈블된 인스트럭션을 보인다.
2) -as 옵션 : 정의된 심볼을 보인다.
3) -l[패스] 옵션 : include 디렉토리를 지정한다. 어셈블리 소스 내에서 사용된 include 지정자가
                   지정하는 헤더파일을 찾고자 할 때 사용한다.
4) -W / --no-warn : 경고 메시지를 출력하지 않는다.
5) -march=[아키텍처 문자열] : 해당 어셈블리

 ===================================================================================================

 [collect2 / ld 옵션]
: 링크 옵션

 1) -L[라이브러리 디렉토리] 옵션 : 라이브러리를 찾을 디렉토리를 지정한다.
2) -l 옵션 : 같이 링크할 라이브러리를 지정한다.
3) -shared 옵션 : 공유 라이브러리와 정적 라이브러리가 같이 있을 경우, 공유 라이브러리를 우선하여
                         링크한다. (아무 옵션을 주지 않아도 공유 라이브러리를 우선으로 링크한다.)

 4) -static 옵션 : 정적 라이브러리와 공유 라이브러리가 같이 있다면, 정적 라이브러리를 우선하여
                       링크한다. (속도는 빠르지만 파일 사이즈가 커진다는 점 고려할 것!)

 5) -nostdlib 옵션 : 링크시에 표준 C 라이브러리를 사용하지 않는다.
                          (OS, 부트로더와 같은 프로그램을 컴파일 할 때 사용)

 6) -nostartfiles 옵션 : crt1.o 등과 같은 start up 파일을 링크하지 않는다.
                          (OS, 부트로더와 같은 프로그램을 컴파일 할 때 사용)

 7) -Wl,[링크 옵션들] 옵션 : gcc를 거치지 않고 바로 링크에게 옵션을 정해주고자 할 때 사용한다.
                                      (사용법은 -Wa와 동일한다.)
  
   < 유용한 링크 옵션들 >
   ① -s 옵션 : 실행 파일에서 심볼 테이블을 제거
   ② -x 옵션 : 출력 파일에서 로컬 심볼 제거
   ③ -n 옵션 : 텍스트 영역을 읽기 전용으로 만듬
   ④ -r 옵션 : 추후 링크가 가능하게 오브젝트를 만듬
   ⑤ -e [name] 옵션 :  시작 심볼을 name 심볼로 사용 (default 시작심볼 : _start 심볼)
   ⑥ -M 옵션 : 심볼들의 정보를 자세하게 출력
   ⑦ oformat [format] 옵션 : 주어진 형식의 오브젝트 파일을 생성

=============================================================================================================
출처 : http://www.dreampharos.com/

by 예섬수진 | 2009/08/14 11:39 | Script | 트랙백 | 덧글(0)

Ant] read xml & extract value

아래와 같은 xml file에서 durand.vob.total의 값을 읽어 오려면 아래와 같이 하면 된다.
    1. data를 읽어 올 xml 파일 예제 
        <model>
            <vob>
                <total>2</total>
            </vob>
        </model>

    2. Ant Script
        ㄱ. project 내에서 다음 줄 추가
            <xmlproperty file="clearcase_info.xml" collapseAttributes="true"/>

        ㄴ. target 내에서 다음과 같이 읽어 오면 됨
            ${model.vob.total}

※ 사용 후기 
    . Ant의 xmlproperty를 이용하면 Python의 DOM을 이용하는 것보다 훨씬 쉽게  xml 파일에서 data 값을 가져올 수 있었다.

첨부 파일 : clearcase_info.xml , xml_parser.xml

by 예섬수진 | 2009/08/11 23:55 | Programming | 트랙백 | 덧글(0)

linux에서 Windows 공유 폴더 mount하기

mount //공유_할_컴퓨터_IP/공유_폴더 /linux내_mount_저장소 -o username=계정_id,password=계정_비밀번호,rw

Ex>
    mount //10.88.195.241/Source /share/bas -o username=Admin,password=mbi,rw

by 예섬수진 | 2009/07/16 14:12 | Computer Basic | 트랙백 | 덧글(0)

HDD 새로 장착 시, 새로운 HDD 인식하게 하기

[제어판] -> [관리도구] ->[컴퓨터 관리]에 들어 간다.

[컴퓨터 관리]에서 왼쪽 메뉴에 있는 [디스크 관리]를 선택한다.


인식한 디스크를 우클릭하여 인식하고 Format한다.

by 예섬수진 | 2009/06/23 10:08 | Computer Basic | 트랙백 | 덧글(0)

◀ 이전 페이지          다음 페이지 ▶