linux에서 C언어 자료형에 관한 질문입니다
글쓴이: sole / 작성시간: 금, 2006/06/02 - 2:31오후
안녕하세요? 임베디드 소프트웨어 수업중 간단한 character device driver를 작성하는 과제를 하게 되었는데
linux에서 double 자료형이 잘 먹히질 않네요
컴파일은 되는데 insmod를 하려니 참조하려는 함수를 찾지를 못한다네요...ㅜ.ㅜ
대충 보니 double 형 연산에 관한 함수들 같은데...
리눅스에서 실수 연산이 가능하게 하려면 어떻게 하나요?
리눅스에서 가능한 자료형과 윈도우에서 가능한 자료형의 차이 좀 알려주세요~~
Forums:
자료형의 문제가
자료형의 문제가 아니라 라이브러리 문제인 것 같은데요. Device driver는 만들어 본 적이 없어서 자세한 답변은 다른 분께서 해주시겠죠?
검색해보면... gcc ..
검색해보면...
gcc .. -ffast-math -mhard-float ..
위와 같이 옵션을 추가하라고 나오네요...
https://mail.rtai.org/pipermail/rtai/2006-March/014550.html
커널 모듈을 작성 중이시라면
double 가 문제가 아니고 호출하신 함수 문제 인듯 합니다.
커널 모듈 코딩에서는 기본 C 표준함수를 사용할 수 없습니다.
C 표준 라이브러리도 일단 OS 가 완전히 구동된 다음 사용이 가능한 것이지만
커널 모듈이 구동되는건 그 이전이기 때문에
커널 모듈에서 사용할 수 있는 함수들은 커널 소스에서 직접 구현된 함수뿐입니다.
그래서 printf() 도 사용 못하고 printk() 를 사용하는 것과 같은 것이지요.
심지어 atoi() 도 구현되어 있지 않기 때문에 직접 구현하셔야 합니다.
댓글 달기