1. 프로세스
- 목록 보기 : ps -ax
- 죽이기 : kill [-프로세스번호]
2. 파일
- 이름변경 : mv
3. gcc 사용
-o <출력파일명> <소스 또는 오브젝트 파일명> [...] : 출력(output) 화일명을 정함. 예) gcc -o hello hello.cpp
-c : 오로지 컴파일(compile) 작업만 하고 싶은 경우 즉, 오브젝트 파일(*.o) 생성. 가능한 -fPIC 옵션을 같이 사용한다.
-l <라이브러리 파일명> : 라이브러리 파일 지정. (소문자 L)
4. 라이브러리 관리 명령 : ar [-]옵션 파일명
==> 라이브러리 파일의 확장자 : *.a
-r : 라이브러리 파일을 만든다. 예) ar r <라이브러리 파일명> <오브젝트 파일> [...]
5. 정적 라이브러리 만들어 쓰기 (파일 확장자 : *.a)
1) Object 코드 만들기
$ gcc –c square.c factorial.c
2) 라이브러리 만들기
$ ar r libstuff.a square.o factorial.o
ar 옵션
t : library 내용보기
p : library 소스보기
r : library insert or replace
s : Index 생성
x : 묶은 파일 풀기
d : 삭제
3) 라이브러리 인덱스 만들기
라이브러리 자체에 루틴 정보를 추가하는 과정
$ ranlib libstuff.a
라이브러리 만들기 + 인덱스 만들기 통합 명령
$ar rs libstuff.a square.o factorial.o
4) 각 루틴의 signature가 extern 형태로 선언된libstuff.h 만들기
5) 컴파일
$gcc –I ../include –L../lib –o wibble wibble.c –lstuff –lm
-lstuff : 지금 만든 library 링크 (순서가 앞에 있으므로 이곳의 것이 불림)
-lm : 표준 수학 library 링크
6. 동적 라이브러리 만들어 쓰기 (파일 확장자 : *.so)
1) 재배치코드 생성
-fpic, -fPIC : 공유를 위한 위치 독립적 생성
$gcc –c –fPIC square.c factorial.c
2) 공유라이브러리 생성 (인덱스 과정 불필요)
$gcc –shared –o libstuff.so square.o factorial.o 사용
3) 정적인 경우와 동일 (.a와 .so가 둘 다 있으면 .so를 선택 수행)
$gcc –I../include –L../lib –o wibble wibble.c –lstuff –lm
4) 꼭 정적인 라이브러리를 링크 하고자 할 때
$gcc –I../include _L../lib –o wibble wibble.c libstuff.a –lm
ldd 명령: 실행 프로그램이 사용하는 공유 라이브러리 나열
7. 프로세스에 링크된 라이브러리 보기
ldd [컴파일 된 프로세스]
'기본카테고리' 카테고리의 다른 글
[VC++]CListCtrl 을 읽기전용으로 설정하는 방법 (0) | 2013.10.01 |
---|---|
[C++] Socket통신 (0) | 2013.09.18 |
[Linux] Thread (0) | 2013.07.11 |
[VC++]Queue (0) | 2013.06.05 |
[VC++] STL(Standard Template Library) (0) | 2013.05.11 |