본문 바로가기
창고/Backup_2013_0121

프로그래밍에 도움되는 명령어 유틸리티 ( HPUX에서 테스트-_-;;)

by 가능성1g 2011. 8. 29.
반응형

프로그래밍 할때 잘쓰는 시스템 명령어들
 출처 :: 열씨미와 게을러의 리눅스 개발 노하우 탐험기

회사에서 쓰는것은 HPUX 라 책에 있는거 그대로는 안되는것들이 꽤 있어서 몇몇개는 제외함

으쨌든 리눅스 쓰면서 사용할수도 있기에 메모!!

*. grep

-n 파일내부 번호
-H 파일명
-R 재귀적탐색
-I 이진파일 건너뛰기
-w 전체단어 일치


$ find . -name "*.[ch]" -exec grep -Hn foobar {} \;

foobar.h:  5:void foobar (int arg );

*. ctags
-. 태그파일 생성
$ ctags *.[ch]

-. 태그파일 사용
vi -t myfunc
:tag myfunc

myprog.c 내부의 main을 찾을때
vi -t Mmyprog
:tag Mmyprog

-. 단축키
{ 찾고자 하는 함수가 있는 행에서 } Ctrl+]  /* 함수 선언한곳으로 이동 */
Ctrl+T /* 직전위치로 복귀 */

-. 태그스택검사
:tags

-.여러프로젝트에서의 tag 파일 위치 지정
:set tags=./tags,tags,/home/user/lazyness/commontags
.vimrc 에 포함하여 사용

-. 도움말
:help tags

*. cscope /* 함수호출 목록 찾기 */

*. GNU global /* gtags 명령 범용 태깅프로그램 */

*. strace - write STREAMS event trace messages to standard output

*. ldd_ia: ldd - list dynamic dependencies of executable files or shared
      libraries on Integrity systems
ldd 의존성확인 유틸리티- 호스트 플랫폼에서 실행가능한 것만 가능 ( 교차컴파일은 찾지 못함 )

$ ldd /bin/ls

*. file - determine file type 파일정보 표시, 실행플랫폼정보 알려줌

*. strings - find the printable strings in an object or other binary file
           - obj, bin 내부의 텍스트 파일을 보여줌


*. nm - print name list of common object file ( obj 파일에서 심볼 이름을 따냄 ) -
                       A    (absolute)
                       B    (bss symbol)
                       C    (common symbol)
                       D    (data symbol)
                       M    (milli symbol)  ELF only
                       N    (notype)  ELF only
                       R    (section region)
                       S    (tstorage symbol)  SOM only
                       T    (text symbol)
                       U    (undefined)

*. ld_ia: ld - link editor for Integrity systems ( 링커- 라이브러리 생성시 이용 )

>> 참고 <<
HPUX 에서 라이브러리 생성 옵션
컴파일
INCL     = foo.h
CFLAGS   = -g -w +DSblended +DD64 -Bprotected_def \
           -DSHARED_LIB -D__UNIX -D__NEW_HP_SYS \
           -I$(INCL)

/user/bin/cc -c $(CFLAGS) -o foo.o foo.c

오브젝트 생성
        ld +alloc_common -b foo.o -o libfoo_sl.sl


Linux 에서 라이브러리 생성 옵션
$ gcc -fPIC -c libhello.c
$ gcc - shared -W1,-soname,libhello.so.1 -o libhello.so.1.0.1 libhello.o -lc

반응형