몇가지 궁금해서 문의드립니다.
PC linux의 application program을 짤 때,
source에 일 예로써 다음과 같은 헤더파일을 포함하곤 합니다.
#include <stdio.h>
#include <sys/types.h>
…
여기서 헤더파일의 위치는 보통 표준 디렉토리인
“/usr/include”내에 위치하는 것으로 알고 있습니다.
물론, 컴파일 옵션에서 –I /XXX 라고 할 경우에는 “XXX” 디렉토리도 찾긴 합니다.
<문의1>
그렇다면, PC에서 embedded linux의 application program을 짤 때는
헤더파일의 경로가 어떻게 되는가요 ?
즉… arm-linux-gcc로 컴파일 하는, application program에서
#include <stdio.h>
#include <sys/types.h>
와 같은 헤더파일을 포함시킬 때, 이 헤더파일의 위치는 어디에 존재하나요 ?
위와 같이 PC의 경우랑 동일(“/usr/include")한가요 ?
<문의2>
표준 디렉토리가 “/usr/include"라고 할 때,
ARM용 CPU에서 실행되는 프로그램을 짠 후에,
i386상에서 cross-compiler로써 컴파일 할 경우에는
ARM용 타겟보드의 루트파일시스템내에 “/usr/include"가 없어도 되는 것이 맞습니까?
그렇다면, 타겟보드내에서 native compiler로써 컴파일 할 경우에는
ARM용 타겟보드의 루트파일시스템내에 “/usr/include"가 반드시 존재해야 하는가요 ?
<문의3>
그리고 한가지만 더 여쭙겠습니다.
표준디렉토리가 “/usr/include”라고 하는데, 그럼, 이 표준 디렉토리는 어디서 정의하나요 ?
리눅스 커널에서요 ?
아니면, 컴파일러에서요 ?
아니면, 루트파일시스템내의 특정 설정파일(/etc아래...등)에서요 ?
2. 툴체인 경로기 때문에 /usr/include랑 하등 상관이 없습니다.
- native의 경우는 /usr/include가 편하겠지요? 다르게도 지정은 가능하겠지만, 왕노가다를 궂이....
3. 컴팔러라고 보는게 맞겠지요?