C++ Qt5.6.1アプリケーションを作成してDebianで起動しようとしています。 リンクエラーまたはロードライブラリエラーのいずれかを取得しています。 CMakeので作成 静的にリンクされたQt5のXCBプラグインのロードライブラリまたはリンクエラーの取得
configure -release -confirm-license -opensource -static -no-dbus -no-openssl -no-qml-debug -no-opengl -qt-freetype -qt-xcb -nomake tools -nomake tests -nomake examples -no-sql-db2 -no-sql-oci -no-sql-tds -no-sql-sqlite2 -no-sql-odbc -no-sql-ibase -no-sql-psql -skip doc -skip imageformats -skip webchannel -skip webengine -skip webview -skip sensors -skip serialport -skip script -skip multimedia
プロジェクトは、LIBSは、このように指定されている
Qtが静的LIBSに構築、使用される構成:
SET(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} "${QT5_LIB_ROOT}/cmake")
FIND_PACKAGE(Qt5Core REQUIRED)
FIND_PACKAGE(Qt5Gui REQUIRED)
FIND_PACKAGE(Qt5Widgets REQUIRED)
FIND_PACKAGE(Qt5Network REQUIRED)
FIND_PACKAGE(PNG REQUIRED)
FIND_PACKAGE(ZLIB REQUIRED)
FIND_PACKAGE(Threads REQUIRED)
IF(CMAKE_BUILD_TYPE STREQUAL "Debug")
SET(QT_LIBS
libqtharfbuzzng_debug.a
libqtpcre_debug.a
libQt5PlatformSupport_debug.a
libxcb-static_debug.a
)
ELSE()
SET(QT_LIBS
libqtharfbuzzng.a
libqtpcre.a
libQt5PlatformSupport.a
libxcb-static.a
)
ENDIF(CMAKE_BUILD_TYPE STREQUAL "Debug")
SET(OS_SPECIFIC_LIBS
dl
Qt5::QXcbIntegrationPlugin
${CMAKE_THREAD_LIBS_INIT}
${ZLIB_LIBRARIES}
${PNG_LIBRARY})
FOREACH(lib_name ${QT_LIBS})
IF(NOT EXISTS ${QT5_LIB_ROOT}/${lib_name})
MESSAGE(FATAL_ERROR "Could not locate required Qt lib ${QT5_LIB_ROOT}/${lib_name}")
ENDIF()
LIST(APPEND OS_SPECIFIC_LIBS ${QT5_LIB_ROOT}/${lib_name})
ENDFOREACH(lib_name)
そして、私はコードでXCBプラグインをインポートしていた場合(Q_IMPORT_PLUGIN(QXcbIntegrationPluginは)それは私にリンクエラーを与える:
/Qt5/plugins/platforms/libqxcb.a(qxcbmain.o): In function `QXcbIntegrationPlugin::create(QString const&, QStringList const&, int&, char**)':
qxcbmain.cpp:(.text+0x67): undefined reference to `QXcbIntegration::QXcbIntegration(QStringList const&, int&, char**)'
ANF私はPLUをインポートしていない場合ジム - それはちょうどエラーで始まっていません:
This application failed to start because it could not find or load the Qt platform plugin "xcb"
何か助けてください?助言?
ありがとうございました。
私は静的リンクとCMakeは今のところ壊れていると思います。 https://bugreports.qt.io/browse/QTBUG-38913しかし、これは別の問題のように見えます - そして私はあなたが手動でプラットフォームプラグインにリンクするとは思わないと思います、CMake/Qt統合はそれの世話ですが、私は間違っているかもしれません... – peppe
それは少し異なります。私が持っている問題は、Linuxに特有です。 OSXとWindowsで問題はありません(プラットフォームごとに異なるプラグインです)。 – Ation