-c -o gch를 통해서 gcc precompiled header를 생성이 가능하다.
물론 gch가 생성되면 원래 헤더파일이 사라져도 문제없이 컴파일 된다.
pi@raspberrypi ~/src/pch $ g++ -c stdafx.h -o stdafx.h.gch pi@raspberrypi ~/src/pch $ ls -al 합계 4244 drwxr-xr-x 2 pi pi 4096 7월 30 00:58 . drwxr-xr-x 9 pi pi 4096 7월 30 00:58 .. -rw-r--r-- 1 pi pi 37 7월 30 00:58 1 -rw-r--r-- 1 pi pi 91 7월 30 00:58 a.cpp -rw-r--r-- 1 pi pi 37 7월 30 00:58 stdafx.h -rw-r--r-- 1 pi pi 4324036 7월 30 00:59 stdafx.h.gch pi@raspberrypi ~/src/pch $ file stdafx.h.gch stdafx.h.gch: GCC precompiled header (version 013) for C++ pi@raspberrypi ~/src/pch $ mv stdafx.h stdafx.h.bak pi@raspberrypi ~/src/pch $ g++ a.cpp |
확장자 gch로 확인하기 때문에 다른 확장자로 변경시 gch 헤더를 찾지 못한다.
pi@raspberrypi ~/src/pch $ mv stdafx.h.gch stdafx.h.gch.bak pi@raspberrypi ~/src/pch $ ls -al 합계 4248 drwxr-xr-x 2 pi pi 4096 7월 30 01:01 . drwxr-xr-x 9 pi pi 4096 7월 30 00:58 .. -rw-r--r-- 1 pi pi 91 7월 30 00:58 a.cpp -rwxr-xr-x 1 pi pi 6492 7월 30 01:00 a.out -rw-r--r-- 1 pi pi 37 7월 30 00:58 stdafx.h.bak -rw-r--r-- 1 pi pi 4324036 7월 30 00:59 stdafx.h.gch.bak pi@raspberrypi ~/src/pch $ g++ a.cpp a.cpp:1:20: fatal error: stdafx.h: 그런 파일이나 디렉터리가 없습니다 compilation terminated. |
-c가 좀더 간편한듯.
-x c++-hedaer
-x c-header는 너무 길어 -_-
pi@raspberrypi ~/src/pch $ gcc -x c++-header stdafx.h -o stdafx.h.gch pi@raspberrypi ~/src/pch $ ls -al 합계 4248 drwxr-xr-x 2 pi pi 4096 7월 30 01:01 . drwxr-xr-x 9 pi pi 4096 7월 30 00:58 .. -rw-r--r-- 1 pi pi 91 7월 30 00:58 a.cpp -rwxr-xr-x 1 pi pi 6492 7월 30 01:00 a.out -rw-r--r-- 1 pi pi 37 7월 30 00:58 stdafx.h -rw-r--r-- 1 pi pi 4324036 7월 30 01:01 stdafx.h.gch |
-c는 찾는거 포기 -_-
-x language Specify explicitly the language for the following input files (rather than letting the compiler choose a default based on the file name suffix). This option applies to all following input files until the next -x option. Possible values for language are: c c-header c-cpp-output c++ c++-header c++-cpp-output objective-c objective-c-header objective-c-cpp-output objective-c++ objective-c++-header objective-c++-cpp-output assembler assembler-with-cpp ada f77 f77-cpp-input f95 f95-cpp-input java -o file Place output in file file. This applies regardless to whatever sort of output is being produced, whether it be an executable file, an object file, an assembler file or preprocessed C code. If -o is not specified, the default is to put an executable file in a.out, the object file for source.suffix in source.o, its assembler file in source.s, a precompiled header file in source.suffix.gch, and all preprocessed C source on standard output. |
췟 이건 안되네 -_-
pi@raspberrypi ~/src/pch $ gcc stdafx.h -o stdafx.h.gch stdafx.h:1:18: fatal error: string: 그런 파일이나 디렉터리가 없습니다 compilation terminated. |
결론 -c -o .gch로 하자
2015/07/29 - [프로그램 사용/gcc] - gcc에서 precompiled header 사용하기
'프로그램 사용 > gcc' 카테고리의 다른 글
gcc -M -MM (0) | 2015.12.17 |
---|---|
gcc 초기화 관련 (0) | 2015.10.21 |
gcc에서 precompiled header 사용하기 (0) | 2015.07.29 |
gcc 64bit 변수 선언하기 (0) | 2015.07.14 |
gcc 32bit/ 64bit 컴파일하기 (0) | 2015.07.14 |