diff --git a/README.md b/README.md index 97dc67e30542d9eb0207f1a4c7d45e900d5e801e..4853be5c42747bd3868f1ceb33974391f762ffea 100644 --- a/README.md +++ b/README.md @@ -739,6 +739,32 @@ mul_float 코드 * 그 다음 255로 나누어 (255번째 bit 가 1이므로) 각각의 r,g,b,a 로 쪼갠것에 대해 r1*r2, g1*g2, b1*b2, a1*a2 를 해준다. * 그리고는 다시 255를 곱해주고 int로 변환하여 두 rgb의 곱한 rgb값을 return 하는 형태이다. +## lesson 12 + +* main.c 를 컴파일 할 때에는 먼저 main.c 가 include하고 있는 fx_s15_16.c를 먼저 컴파일 해야한다. +* 한번에 쉽게 하는 명령어 +>* $cc main.c fx_s15_16.c + +1. make 와 cmake +>* test.h test.c main.c 파일이 존재하고 test.c와 main.c가 test.h를 포함한다고 하면 gcc 컴파일을 통해 main.o 바이너리 파일을 만들기 위해서는 아래와 같은 과정이 필요하다. +>>1. $gcc -c test.c +>>2. $gcc -c main.c +>>3. $gcc -o main main.o test.o +>* 위와 같은 과정을 쉽게 할 수 있는 자동화 과정이 Make 이다. +>* 하지만 make 는 헤더파일을 스스로 확인하면서 의존성을 체크 하지 못하고 Makefile에 명시한 것을 기반으로 컴파일을 하기 때문에 여러 파일들의 dependency가 복잡해 지면 관리하기 어렵다. +>* 위의 단점들을 보완하여 파일의 의존성 관계를 파악 할 수 있는 것이 CMake이다. + +>* CMake 사용법 +>>1. $cmake txt파일 +>>2. make 로 빌드 + +>* make file 생성 후 make를 하게 되면 현재 파일에 있는 make를 사용한다. +>* taget ($@) dependency files +>* make 시에는 "tab"이 중요하다. : excute if dependency changes + +* touch : timestamp 관련 +* dependency 자동으로 불러오는 방법 +>* $gccmakedep main.c fx_s15_16.c ## lesson 13