gcc

    SystemSoftware - Linking #2

    SystemSoftware - Linking #2

    SystemSoftware - Linking #1 컴파일된 object 파일들을 linking해서 exe파일로 만드는 과정에서 어떤 일들이 일어나는지 알아보자 // main.c int sum(int *a, int n) int array[2] = {1, 2} int main(){ int val = sum(array, 2); return val;.. hyeo-noo.tistory.com 지난 글에 이어서 Linking을 하는 2가지 방법에 대해서 알아보자 다 쓰고 파일 날아가서 다시 씀 일반적으로 사용하는 함수의 Packaging 모든 함수를 하나의 source file에 넣는경우 : 공간과 시간측면에서 비효율적임 각각의 함수마다 나누어진 source file에 넣는 경우 : 효율적 Static librar..

    SystemSoftware - Linking #1

    SystemSoftware - Linking #1

    컴파일된 object 파일들을 linking해서 exe파일로 만드는 과정에서 어떤 일들이 일어나는지 알아보자 // main.c int sum(int *a, int n) int array[2] = {1, 2} int main(){ int val = sum(array, 2); return val; } // sum.c int sum(int *a, int n){ int i, s = 0; for(i = 0; i < n; i++){ s += a[i]; } return s; } main.c의 sum 함수는 어떤 과정을 통해서 sum.c의 sum 함수를 불러와서 기능을 수행할 수 있을까? 위와 같이 여러 개로 이루어진 파일들을 연결하는 과정을 Linking이라고 한다. 먼저 cpp(C Pre-Processor 전처리)..

    Linux - GCC/Make

    Linux - GCC/Make

    Linux 가상환경에서 GCC를 이용해 .C 파일을 컴파일 하는 다양한 방법을 공부해 보았다 // unix3.h #include void printUNIX(); void printGCC(); // unix3-1.c #include #include "unix3.h" int main(){ printUNIX(); printGCC(); return 0; } // unix3-2.c void printUNIX(){ printf("UNIX\n"); return 0; } // unix3-3.c void printGCC(){ printf("GCC\n"); return 0; } 새로 만든 directory 안에 위 파일들을 만들어 준다 그리고 gcc unix3-1.c 를 입력하면 위와 같은 오류를 볼 수 있다 위와 같은 ..