5

libqxt の最新 (git) バージョンを使用しています。実行する./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

問題があれば、私は OSX Mountain Lion を使用しています。

ありがとう!

4

2 に答える 2

4

ハック修正として、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)

今後の参考のために、libqxt リポジトリでこの問題を監視できます。

于 2013-01-17T20:53:50.817 に答える
4

Qxt は、Mountain Lion で削除されたプライベート Mac OS X API を使用しているようです。CGSGetWindowProperty は、以前のバージョンの Mac OS X では文書化されていませんでした。

于 2012-08-10T10:44:27.430 に答える