커널소스 디바이스드라이버의 단독 모듈 컴파일
글쓴이: imcjswo / 작성시간: 목, 2004/06/17 - 10:24오전
안녕하세요
커널을 새로 컴파일 후
커널소스안의 특정 디바이스 드라이버만을 모듈로 컴파일해서 드라이버를 추가 사용하고 싶은데요
( 즉, 전체 커널 컴파일없이 특정 드라이버의 xxxx.o 의 모듈용 오브젝트 파일을 생성해서 insmod로 올려 사용하고 싶습니다.)
단지 해당 소스가 있는 경로에서
gcc -c xxxx.c -D__KERNEL__ -DMOUDLE -O 만으로도 가능할까요? :oops:
혹시 위의 방법으로 안된다면 방법을 사사해주시면...감사하겠습니다 :D
Forums:
제가 보기엔 별 문제 없는 것 같은데요...모듈 컴파일시 -O 옵
제가 보기엔 별 문제 없는 것 같은데요...
모듈 컴파일시 -O 옵션은 신중하게 사용해야하는 것으로 알고 있습니다.
간단한 코드라면 상관없겠지만, 되도록 -O0 로 설정하는것이 좋다는 얘길 들은 기억이... ^^;;;
고수님들이 더 부가적인 설명을 해주시겠죠?
-O는 넣는게 좋을걸로 알고 있어요..
반드시 넣을 필요는 없지만...
넣는게 좋다고 하네요...
(o'reilly의 Linux device driver에 따르면..)
플래그에 -O를 포함 해야 gcc에서는 inline 함수를 디버그 할 수 있다고 하네요..
그렇지만 -O2 이상의 옵셥의 경우에는 inline으로 선언되어 있지 않은 함수도 inline 함수로 취급될 수 있다고 합니다.... 그래서 위험하데요~
그런데 그게 무슨 뜻인지 명확히는 모르겠어요~
아아.. 이렇게 부실한 답변이라니..
..
다수의 .c를 하나의 모듈로 묶어서
.o를 만들기 위해서는 어찌 해야하나요?
하나씩 하나씩 적었더니..
각각 .o가 생겨버리고..
뭉치자고 -o를 할 수도 없는 거 같고요;;;;
file system 모듈 컴파일 하는데요...
여러 .c파일을 어떻게 하나의 .o로 만들죠?
VENI VIDI VICI
Re: ..
ar 린 명령어로 xx.a라고 o파일 뫃은 파일 만들수 잇습니다.
즐린
..
그렇게 하면... insmod가 되나요? -0-;;
저것은 library만드는거 아닌가요? 음..ㄱ
VENI VIDI VICI
ld를 써야죵..
ld를 써야죵..
https://nicesj.com
https://blog.nicesj.com
gcc -o modulename.o firstfile.o secondfi
gcc -o modulename.o firstfile.o secondfile.o
그냥 이렇게 해주시면 됩니다
음...
다수의 .o 파일을 묶는게 아니라 다수의 .c 파일들을 하나의 .o 파일로
만들려면 먼저 각자 .o 파일로 만든 후 위처럼 하라는 말씀인가요?
댓글 달기