2012-08-09 20 views
5

Tengo la última versión (git) de libqxt. Corro ./configure y que funciona muy bien, a continuación, hacer un error con este error:compilando libqxt en mac osx

linking ../../lib/QxtWidgets.framework/QxtWidgets 
ld: warning: directory not found for option '-L/usr/local/pgsql/lib' 
ld: warning: directory not found for option '-L/tmp/qt-stuff-85167/source/qt-everywhere-opensource-src-4.8.1/Desktop/Qt/4.8.1/gcc/lib' 
ld: warning: directory not found for option '-F/tmp/qt-stuff-85167/source/qt-everywhere-opensource-src-4.8.1/Desktop/Qt/4.8.1/gcc/lib' 
Undefined symbols for architecture x86_64: 
    "_CGSGetWindowProperty", referenced from: 
     QxtWindowSystem::windowTitle(long) in qxtwindowsystem_mac.o 
ld: symbol(s) not found for architecture x86_64 
collect2: ld returned 1 exit status 
make[1]: *** [../../lib/QxtWidgets.framework/QxtWidgets] Error 1 
make: *** [sub-src-widgets-install_subtargets] Error 2 

si importa, estoy usando OS X Mountain Lion.

Gracias!

Respuesta

4

Parece que Qxt usa alguna API privada de Mac OS X que se eliminó en Mountain Lion. CGSGetWindowProperty no estaba documentado en versiones anteriores de Mac OS X, así que supongo que no era confiable para usarlo de todos modos.

+1

Sí, eso es lo que estaba pensando también ... ¿Crees que hay una forma de evitar esto, o incluso encontrar el encabezado/lib en otro lugar? ¿Si es así, donde? – sfw

4

Como una solución hacky puede simplemente eliminar la llamada a la propiedad CGSGetWindowProperty - Qxt compilará, pero por supuesto QxtWindowSystem::windowTitle no funcionará correctamente.

diff --git a/src/widgets/mac/qxtwindowsystem_mac.cpp b/src/widgets/mac/qxtwindowsystem_mac.cpp 
index 63cab38..de4a89c 100644 
--- a/src/widgets/mac/qxtwindowsystem_mac.cpp 
+++ b/src/widgets/mac/qxtwindowsystem_mac.cpp 
@@ -89,11 +89,7 @@ QString QxtWindowSystem::windowTitle(WId window) 
    // most of CoreGraphics private definitions ask for CGSValue as key but since 
    // converting strings to/from CGSValue was dropped in 10.5, I use CFString, which 
    // apparently also works. 
- err = CGSGetWindowProperty(connection, window, (CGSValue)CFSTR("kCGSWindowTitle"), &windowTitle); 
- if (err != noErr) return QString(); 
- 
- // this is UTF8 encoded 
- return QCFString::toQString((CFStringRef)windowTitle); 
+ return QString(); 
} 

QRect QxtWindowSystem::windowGeometry(WId window) 

Para el futuro de referencia puede supervisar this issue in libqxt repository.

+0

Hola, si es posible, ¿puedes responder esta pregunta: http://stackoverflow.com/questions/28708747/error-trying-to-install-qxt-for-sending-email? Hice la corrección que dijiste, recibí el error durante el paso 'make install' .. – SexyBeast