makefile(4)
-
2022-06-13 리눅스_디바이스_드라이버_5
Makefile 연습 main.c #include int main(void){ printf("hello\n"); #ifdef SCULL_DEBUG printf("World\n"); #endif return 0; } Makefile TARGET = main SOURCE = main.c CC = gcc all : $(CC) $(SOURCE) -O2 -o $(TARGET) clean : rm -f $(TARGET) -O2 : Optimization 최적화, 최적화 레벨 2 최적화 옵션 : 실행 파일의 크기를 줄이고, 실행 속도를 향상시킨다. -O0 : 최적화를 수행하지 않는다. -O1 : -O0보다는 높은 수준의 최적화. (= -O) -O2 : 가장 많이 사용하는 수준의 최적화. 일반 응용 프로그램이나 커널을..
2022.06.13 -
2022-06-05 리눅스_디바이스_드라이버_3
hello.c의 Makefile Makefile에 대한 정리 Makefile 이해 2022-06-05 Makfile_이해 make, Makefile 이해 gcc C언어의 컴파일 과정 make Makefile의 구성 예시 gcc 명령어 사용 make 명령어 사용 Makefile 매크로 Makefile 보충 := , ?= 와 += 는 뭐지? $(OBJS:.o=.d) 는 뭐지? Makefile 조건문 Mak.. ramen4598.tistory.com vi Makefile make ifneq ($(KERNELRELEASE),) obj-m := hello.o else KERNELDIR ?= /lib/modules/$(shell uname -r)/build PWD := $(shell pwd) default: $(M..
2022.06.05 -
2022-06-05 Makfile_이해
make, Makefile 이해 gcc C언어의 컴파일 과정 make Makefile의 구성 예시 gcc 명령어 사용 make 명령어 사용 Makefile 매크로 Makefile 보충 :=, ?= 와 +=는 뭐지? $(OBJS:.o=.d)는 뭐지? Makefile 조건문 Makefile 함수 참고 gcc C언어의 컴파일 과정 전처리기 : #으로 시작하는 전처리 구문을 처리 gcc -E test.c -o test.i 컴파일러 : 고급언어를 저급언어로 번역 gcc -S test.i -o test.s 어셈블러 : 저급언어를 기계어로 번역 gcc -c test.s -o test.o 링커 : gcc test.o -o test.exe -o : 생성 된 파일의 이름을 지정 출처 : https://reakwon.tis..
2022.06.05 -
2022-06-02 리눅스_디바이스_드라이버_2
설치 리눅스 드라이버 작업을 수행할 때는 슈퍼 유저로 작업한다. 출처 : https://junshim.github.io/linux kernel study/Linux_Kernel_Compile/ sudo apt-get install build-essential libncurses5 libncurses5-dev bin86 kernel-package libssl-dev bison flex libelf-dev build-essential은 개발에 필요한 기본 라이브러리와 헤더 파일 등을 포함한다. 없으면 컴파일이 안될 수 있다. 추가로 ncurses 라이브러리들을 빌드하여 설치할 때 필요하다고 한다. libncurses5, libncurses5-dev : Developer's libraries for ncurs..
2022.06.02