WindowsやMac OS Xのように,
そのため,
API
そのおかげで,
libQtに起因する謎のエラー
KDE回りを新しいバージョンに追従するために,
具体的には,
$ make ... [ 51%] Built target dbusmenu-qt Linking CXX executable dbusmenuexportertest CMakeFiles/dbusmenuexportertest.dir/dbusmenuexportertest.cpp.o: In function `DBusMenuExporterTest::testGetSomeProperties()': dbusmenuexportertest.cpp:(.text+0x1df7): undefined reference to `DBusMenuExporter::DBusMenuExporter(QString const&, QMenu*, QDBusConnection const&)' dbusmenuexportertest.cpp:(.text+0x275b): undefined reference to `DBusMenuExporter::~DBusMenuExporter()' dbusmenuexportertest.cpp:(.text+0x27df): undefined reference to `DBusMenuExporter::~DBusMenuExporter()'
このエラーメッセージは,
このソフトウェアはC++で開発されているので,
今までの経験では,
そこでまずMakefileの内容をチェックしてみましたが,
CMakeは,
ざっと眺めたところでは,
$ make VERBOSE=1 /usr/bin/cmake -H/nfs/Srcs/L/Libs/Dbusmenu-qt/libdbusmenu-qt-0.9.2 \ -B/nfs/Srcs/L/Libs/Dbusmenu-qt/build --check-build \ -system CMakeFiles/Makefile.cmake 0 usr/bin/cmake -E cmake_progress_start \ /nfs/Srcs/L/Libs/Dbusmenu-qt/build/CMakeFiles \ /nfs/Srcs/L/Libs/Dbusmenu-qt/build/CMakeFiles/progress.marks \ make -f CMakeFiles/Makefile2 all .... Linking CXX executable dbusmenuexportertest cd /nfs/Srcs/L/Libs/Dbusmenu-qt/build/tests && \ /usr/bin/cmake -E cmake_link_script \ CMakeFiles/dbusmenuexportertest.dir/link.txt --verbose=1 /usr/bin/g++ -isystem /usr/include -m64 \ CMakeFiles/dbusmenuexportertest.dir/dbusmenuexportertest.cpp.o \ CMakeFiles/dbusmenuexportertest.dir/testutils.cpp.o \ -o dbusmenuexportertest -rdynamic -lQtGui -lQtCore -lQtDBus -lQtTest \ ../src/libdbusmenu-qt.so.2.6.0 -lQtGui -lQtCore -lQtDBus \ -Wl,-rpath,/nfs/Srcs/L/Libs/Dbusmenu-qt/build/src CMakeFiles/dbusmenuexportertest.dir/dbusmenuexportertest.cpp.o: \ In function `DBusMenuExporterTest::testGetSomeProperties()': dbusmenuexportertest.cpp:(.text+0x1df7): undefined reference to \ `DBusMenuExporter::DBusMenuExporter(QString const&, QMenu*, \ QDBusConnection const&)' ...
この結果を見ると,
/usr/bin/g++ -isystem /usr/include -m64 \ CMakeFiles/dbusmenuexportertest.dir/dbusmenuexportertest.cpp.o \ CMakeFiles/dbusmenuexportertest.dir/testutils.cpp.o \ -o dbusmenuexportertest -rdynamic -lQtGui -lQtCore -lQtDBus -lQtTest \ ../src/libdbusmenu-qt.so.2.6.0 -lQtGui -lQtCore -lQtDBus \ -Wl,-rpath,/nfs/Srcs/L/Libs/Dbusmenu-qt/build/src
となっているようで,
$ nm -C ../src/libdbusmenu-qt.so.2.6.0 | grep DBusMenuExporter::DBusMenuExporter 0000000000009882 t DBusMenuExporter::DBusMenuExporter\ (QString const&, QMenu*, QDBusConnection const&) 0000000000009882 t DBusMenuExporter::DBusMenuExporter\ (QString const&, QMenu*, QDBusConnection const&)
さて,
おかしいな…,
Qt-4.
$ nm /usr/lib64/libQtCore.so.4.8.1 nm: /usr/lib64/libQtCore.so.4.8.1: no symbols
ライブラリから不要なシンボルを取り除くコマンドをstrip --un-neededからstrip --debugに変更し,
後で知ったところでは,
あれこれ思いつく対策は試してみましたが,