반응형
1. extern vs static
- 링크의 방향을 결정(외부 또는 외부)
- extern int a
- 다른 파일의 전역 변수 a를 사용함
- extern void func()
- 함수는 기본값이 extern(생략되어 있음)
- static int a
- 다른 파일에서 a를 찾을 수 없음
- static void bar()
- 파일 내부에서만 호출 가능한 함수
2. gcc debug
- 컴파일
gcc main.cpp -g
- gdb 실행
gdb main.out
디버깅 시작
- start 입력
다음 줄 실행
- next 입력
뷰어 제공
- ctrl + x + a
- n : 다음 줄 이동
- break 26 : 26번줄 브레이크 적용
- break 함수이름 : 함수 첫 호출에 브레이크 적용
- continue : 브레이크 포인터에서 멈춤
- step : 함수 안으로 들어감
- print 변수명: 변수 정보 출력
- bt : 콜 스택을 보여줌
3. static library
- 오브젝트 파일들을 모아 하나의 파일로 생성한 것
- 이름은 lib이름.a 형태
- 링킹 시점에 실행파일에 바인딩 된다.
4. Dynamic library
- 이름은 lib이름.so 형태
- 빌드시 -fPIC 옵션 줘야함
- 여러 프로그램에서 콜 될 수 있도록 생성시 주소를 상대주소로 설정
- loadtime에 바인딩 하는 방법
- runtime에 바인딩 하는 방법
참고
반응형
'C++ > C++' 카테고리의 다른 글
[C++]스마트 포인터 (0) | 2021.03.09 |
---|---|
[C++]LR value 및 최적화 (0) | 2021.03.09 |
[C++]메모리 구조 (0) | 2021.03.09 |
[C++]연산자 오버로딩 (0) | 2021.03.09 |
[C++]기초 내용 정리 (0) | 2021.03.09 |