2011-11-23 2 views
2

필자가 작성한 커널 확장에는 프레임 워크 (DirectIO)가 포함되어야하므로 대상 속성의 "링크 된 라이브러리"섹션에 프레임 워크를 추가했습니다. 그런 다음 주 소스 파일에 포함 시켰습니다. OSX i386을 위해 구축,Xcode : kext에 프레임 워크를 포함 하시겠습니까?

/Developer/usr/bin/ld_classic: incompatible flag -framework used (must specify "-dynamic" to be used) 

내가 스노우 레오파드 (Snow Leopard)에 엑스 코드 3.2을 사용하고 있습니다 : 나는 그것을 빌드하려고 할 때마다

문제는이 오류를 제공한다. .kext 대상에 .framework를 포함시킬 수 있습니까?

답변

2

커널 확장을 빌드 할 때 프레임 워크 (Kernel.framework 제외) 또는 동적 라이브러리와 링크 할 수 없다고 생각합니다.

코드는 감독자 모드에서 실행됩니다. LD 관련 자료는 기본적으로 해당 단계에서 사용할 수 없습니다.

그러나 kext의 plist 파일 (OSBundleLibraries)을 사용하여 다른 확장 (/ System/Library/Extensions)과 연결할 수 있습니다.

Kernel Extension Programming Topics 설명서의 'Kext 종속성 확인'을 참조하십시오.

사용 가능한 커널 확장에 많은 I/O 관련 사항이 있습니다. 어쩌면 당신은 거기에서 찾을 수 있습니다.

+0

감사합니다. 작동하는 것 같습니다. – Eli

관련 문제