gcc가 참조하는 kernel의 version은 어디에
글쓴이: withpiano / 작성시간: 금, 2005/01/14 - 4:18오전
gcc가 컴파일시에 기준으로 잡고있는 커널은, 대체 어디(절대경로)에 있는 커널인가요?
한컴 리눅스 3.0 의 kernel 2.4.18.15hl을
깔았는데,
.c 파일(모듈)을 컴파일 한후에는
커널 2.4.9-9로 컴파일되었다고 나옵니다. 어떻게 된 거죠?
Forums:
gcc -v
gcc -v
세벌 https://sebuls.blogspot.kr/
일반적인 프로그램들과 같이 /usr/src/linux 에 링크 걸린 커널
일반적인 프로그램들과 같이 /usr/src/linux 에 링크 걸린 커널 일껍니다
rh같은 경우에는 glibc-kernheaders 라는 패키지가 따로 깔
rh같은 경우에는 glibc-kernheaders 라는 패키지가 따로 깔립니다.
gentoo같은 경우에도 linux-headers라는 패키지가 따로 깔리구요.
이 패키지에 /usr/include/linux, /usr/include/asm 디렉토리에 들어갈 헤더들이 포함되어 있습니다.
모듈빌드 할때 쓰이는 커널헤더는 주로 gcc에 -I/lib/modules/`uname -r`/{build,source}/include 옵션을 주도록 합니다. /usr/src/linux는 만약 위의 디렉토리가 없을 때 fail-back할 때 주도록 될껍니다.
----
데스크탑 프로그래머를 꿈꾸는 임베디드 삽질러
Re:
일반적으로, gcc 는 커널 헤더를 참조하는 경로를 따로 가지고 있지 않습니다.
그래서 최근의 배포판들은 /usr/include 아래에 커널 소스의 include/asm 과 include/linux 디렉토리에 있는 헤더들을 넣어 놓는 편입니다.
하지만, 이 헤더 파일들과 사용하는 커널이 맞지 않는 경우가 더 많습니다 -_-;
그래서 커널 모듈 프로그래밍을 할때, 컴파일 옵션에 -I 를 사용해서 특정 위치의 헤더를 참조하게 하죠.
댓글 달기