일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Unity
- github
- C# delegate
- 구조체
- Algorithm
- c# winform
- dart 언어
- 다트 언어
- Houdini
- 포인터
- jupyter
- 유니티
- jupyter lab
- HTML
- gitlab
- git
- docker
- c언어
- 깃
- C언어 포인터
- Data Structure
- Python
- c# 윈폼
- 플러터
- vim
- 도커
- c# 추상 클래스
- Flutter
- C++
- c#
- Today
- Total
목록gcc (2)
nomad-programmer
gcc는 매우 많은 기능을 갖고 있어서 만들어내는 코드를 매우 다양하게 제어할 수 있다. 최적화 gcc는 코드 성능을 아주 많이 높일 수 있다. 루프를 반복할때마다 변수에 값은 값을 대입하는 코드가 있으면 이런 코드를 루프 밖으로 빼낸다. 단지 몇 군데에서만 사용하는 작은 함수가 있다면 이 함수를 인라인 함수(Inline Function)로 바꾸고 호출하는 코드에 직접 집어 넣는다. 매우 다양한 최적화를 할 수 있지만, 대부분의 최적화 기능은 기본값으로는 해제되어 있다. 최적화하려면 컴파일하는 데 많은 시간이 걸리므로 코드를 개발하는 동안에는 컴파일 시간을 줄이기 위해 최적화 기능을 끄는 편이 좋다. 코드를 배포할 준비가 되면 여러 최적화 기능을 활성화하면 된다. 옵션 설명 -O gcc 명령에 -O 플래..
오브젝트 파일(*.o)들을 정적 라이브러리 파일(*.a, *.lib)로 만들어서 사용하면 좋은 점 오브젝트 파일에 존재하는 함수를 하나라도 사용한다면, 빌드할 때 오브젝트 파일의 모든 코드를 가져와 하나의 파일로 빌드된다. 하지만 오브젝트 파일들을 정적 라이브러리로 만들게되면, 사용하고 있는 오브젝트 코드만 가져와 하나의 파일로 빌드된다. 즉, 정적 라이브러리가 아닌 오브젝트 파일을 쓰게 된다면 사용하지도 않는 오브젝트 코드들도 모두 함께 빌드되어버린다. 때문에 파일의 크기가 커지고 느려진다. 오브젝트 파일이 아닌 정적 라이브러리 파일을 쓰도록 하자. 먼저 오브젝트 파일을 생성한다. gcc -I test_code.c encrypt.o checksum.o -o test_code 이런식으로 프로그램을 컴파일..