Pregunta

Estoy intentando vincular al marco Kernel ya que una biblioteca de terceros está utilizando funciones de la biblioteca del Kit de E / S ( http://developer.apple.com/mac/library/documentation/Darwin/Reference/KernelIOKitFramework/index.html ).

Soy nuevo en desarrollo en MacX, estoy en Snow Leopard y compilo con la bandera -m32.

g++-4.2 -headerpad_max_install_names -m32 -F/Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/ -F/System/Library/Frameworks/ -o myApp debug/main.o -F/Library/Frameworks -L/Library/Frameworks -framework OpenCL -framework CoreAudio -framework Kernel -framework QtGui -framework Carbon -framework AppKit -framework QtCore -lz -lm -framework ApplicationServices

Me sale el siguiente error:

ld: framework not found Kernel

Estoy seguro de que el marco Kernel está en / System / Library / Frameworks (como lo está CoreAudio). Pero el enlazador no puede encontrar el marco Kernel. ¿Está prohibido vincularse con el marco Kernel?

¿Alguna idea?

Gracias, Paul

¿Fue útil?

Solución

El marco del kernel es solo un montón de encabezados para permitir una comunicación sensata con el kernel y la capacidad de construir extensiones del kernel. No hay bibliotecas en él para vincular contra una aplicación de espacio de usuario.

Si está intentando usar las funciones IOKit del espacio de usuario para comunicarse con el lado del kernel de IOKit, debería estar usando IOKit.framework. Si está intentando usar funciones que solo están definidas en los encabezados Kernel.framework de una aplicación de espacio de usuario, entonces está haciendo algo mal.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top