일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Flutter
- docker
- git
- github
- Houdini
- jupyter
- jupyter lab
- Data Structure
- 포인터
- HTML
- c언어
- 다트 언어
- c# 윈폼
- 구조체
- C언어 포인터
- 도커
- c# 추상 클래스
- C++
- Algorithm
- Unity
- 유니티
- 깃
- C# delegate
- c# winform
- c#
- gitlab
- Python
- dart 언어
- vim
- 플러터
- Today
- Total
목록정적 라이브러리 (2)
nomad-programmer

동적 라이브러리를 사용하면 실행 시에 코드를 바꾸기 쉽다. 프로그램을 다시 컴파일할 필요 없이 애플리케이션을 갱신할 수 있다.만약 여러 프로그램이 똑같은 코드를 공유하고 있다면 모든 프로그램을 한꺼번에 모두 갱신할 수 있다. 정적 라이브러리와 동적 라이브러리 중 어떤 것이 더 좋은가? 상황에 따라 다르다. 정적 라이브러리는 컴퓨터 간에 이동하기 쉽게 더 작고 빠른 실행 파일을 만든다. 동적 라이브러리를 사용하면 실행 시에 프로그램의 환경을 더 많이 바꿀 수 있다. 오브젝트 파일 혹은 정적 라이브러리 파일을 링크하고 빌드하면 정적 프로그램이 된다. 별개로 있던 여러 오브젝트 코드로 하나의 실행 파일을 만들고나면, 프로그램을 새로 빌드하지 않고서는 들어간 코드를 바꿀 방법이 없다는 이야기다. 프로그램은 그저..

오브젝트 파일(*.o)들을 정적 라이브러리 파일(*.a, *.lib)로 만들어서 사용하면 좋은 점 오브젝트 파일에 존재하는 함수를 하나라도 사용한다면, 빌드할 때 오브젝트 파일의 모든 코드를 가져와 하나의 파일로 빌드된다. 하지만 오브젝트 파일들을 정적 라이브러리로 만들게되면, 사용하고 있는 오브젝트 코드만 가져와 하나의 파일로 빌드된다. 즉, 정적 라이브러리가 아닌 오브젝트 파일을 쓰게 된다면 사용하지도 않는 오브젝트 코드들도 모두 함께 빌드되어버린다. 때문에 파일의 크기가 커지고 느려진다. 오브젝트 파일이 아닌 정적 라이브러리 파일을 쓰도록 하자. 먼저 오브젝트 파일을 생성한다. gcc -I test_code.c encrypt.o checksum.o -o test_code 이런식으로 프로그램을 컴파일..