简体   繁体   English

在mac osx中编译libqxt

[英]compiling libqxt in mac osx

I have the latest (git) version of libqxt. 我有最新的(git)版本的libqxt。 I run ./configure and that works just fine, then make fails with this error: 我运行./configure并且工作得很好,然后make失败并出现此错误:

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

If it matters, I'm using OSX Mountain Lion. 如果重要,我正在使用OSX Mountain Lion。

Thanks! 谢谢!

Seems like Qxt is using some private Mac OS X API that was removed in Mountain Lion. 好像Qxt正在使用Mountain Lion中删除的一些私有Mac OS X API。 CGSGetWindowProperty was not documented in previous versions of Mac OS X, so I gues it wasn't reliable to use it anyway. 在以前的Mac OS X版本中没有记录CGSGetWindowProperty,所​​以我认为无论如何使用它都是不可靠的。

As a hacky fix you can just remove CGSGetWindowProperty property call - Qxt will compile , but of course QxtWindowSystem::windowTitle will not work correctly. 作为一个hacky修复你可以删除CGSGetWindowProperty属性调用 - Qxt将编译,但当然QxtWindowSystem::windowTitle将无法正常工作。

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)

For the future reference you can monitor this issue in libqxt repository . 为了将来参考,您可以在libqxt存储库中监视此问题

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM