"प्लेटफ़ॉर्म प्लगइन लोड करने में विफल" xcb "" क्यूटी स्थापित किए बिना लिनक्स पर qt5 ऐप लॉन्च करते समय


22

मैंने लिनक्स के लिए आवेदन लिखा था जो Qt5 का उपयोग करता है।

लेकिन जब मैं इसे Qt SDK के बिना लिनक्स पर लॉन्च करने की कोशिश कर रहा हूं, तो कंसोल में आउटपुट है:

Failed to load platform plugin "xcb". Available platforms are:

मैं इसे कैसे ठीक करूं? शायद मुझे कुछ प्लगइन फ़ाइल की प्रतिलिपि बनाने की आवश्यकता है? जब मैं स्थापित Qt5 के साथ Ubuntu का उपयोग करता हूं, लेकिन मैं Qt निर्देशिका का नाम बदल देता हूं, तो वही समस्या होती है। तो, यह qt निर्देशिका से कुछ फ़ाइल का उपयोग करता है ...

मुझे libqxcb.soQt SDK निर्देशिका में फ़ाइल मिली है , लेकिन इसे रखने से /usr/libमदद नहीं मिलती है।

जवाबों:


12

सही समाधान एक टर्मिनल पर निम्नलिखित कॉमैंड चला रहा है:

sudo ln -sf /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/ /usr/bin/

यह प्रतीकात्मक लिंक को याद करता है।


1
इससे मेरे लिए समस्या हल हो गई।
प्रतिक सिंघल

3
क्यों आप में फ़ाइलों को लिंक कर सकता plugins/platformsकरने के लिए /usr/bin? platformsनिर्देशिका साझा लाइब्रेरी शामिल हैं, /usr/binबाइनरी फ़ाइलों के लिए प्रयोग किया जाता है। की नहीं सामग्री चाहिए platformsमें जाने /usr/lib?
नाथन एफ।

@NathanF। कम से कम मेरी स्थापना के लिए क्यूटी लोडर प्लेटफ़ॉर्म पर खोज करता है /usr/bin/platforms(मुझे नहीं पता क्यों)। तो इस जवाब ने मेरे लिए भी काम किया: stackoverflow.com/a/25437758/2249798
m13r

12

किसी भी भविष्य के पाठकों के लिए जो इस पार आते हैं - इससे पहले कि आप (खतरनाक तरीके से) साझा पुस्तकालयों के प्रति सहानुभूति के साथ खिलवाड़ करें, मैं दृढ़ता से सुझाव देता हूं कि आप चलाएं

export QT_DEBUG_PLUGINS=1

और फिर टर्मिनल में अपनी असफल निष्पादन क्षमता को फिर से चलाएं। क्यूटी द्वारा फेंका गया वास्तविक त्रुटि संदेश पढ़ें, क्योंकि उपरोक्त समाधानों में से कोई भी मेरे मामले में इस त्रुटि का कारण नहीं है।

चालू करने के बाद मेरा आउटपुट QT_DEBUG_PLUGINSथा:

QFactoryLoader::QFactoryLoader() checking directory path "/opt/PostgreSQL/9.6/pgAdmin 4/bin/platforms" ...
loaded library "/opt/PostgreSQL/9.6/pgAdmin 4/plugins/platforms/libqxcb.so"
QLibraryPrivate::loadPlugin failed on "/opt/PostgreSQL/9.6/pgAdmin 4/plugins/platforms/libqxcb.so" : "Cannot load library /opt/PostgreSQL/9.6/pgAdmin 4/plugins/platforms/libqxcb.so: (/opt/PostgreSQL/9.6/lib/libz.so.1: version `ZLIB_1.2.9' not found (required by /usr/lib/x86_64-linux-gnu/libpng16.so.16))"
This application failed to start because it could not find or load the Qt platform plugin "xcb".

Available platform plugins are: xcb.

Reinstalling the application may fix this problem.
Aborted (core dumped)

इसलिए मैंने तब version `ZLIB_1.2.9' not found (required by /usr/lib/x86_64-linux-gnu/libpng16.so.16))त्रुटि को नजरअंदाज किया और इसका हल ढूंढ लिया, जिससे समस्या हल हो गई।


2
यकीन नहीं होता कि किसने आपको वोट दिया। इससे मुझे अपनी विशिष्ट स्थिति (मेरे मामले में libc ++) से संबंधित वास्तविक त्रुटि का पता लगाने के लिए आवश्यक निशान मिल गए। इसलिए यह गायब था और libc ++ - dev "से संस्थापित होना था। इसे पोस्ट करने के लिए आपका धन्यवाद।
HBSKan

11

"स्टेलारियम" को चलाने का प्रयास करते समय मेरे पास यह त्रुटि संदेश था।

स्ट्रेस के साथ मैंने पाया कि गायब फाइल थी libxcb-xinerama.so.0। मुझे libxcb-xinerama0इसे काम करने के लिए पुनः स्थापित करना पड़ा :

sudo apt-get install --reinstall libxcb-xinerama0

वाह, क्या एक शिकार की गड़बड़ यह विभिन्न reinstalls कोशिश कर रहा था। तो इसके लिए आभारी हूं।
हेन्डी

इससे मदद मिली !!! धन्यवाद
trsvchn

6

libqt5x11extras5आदेश के साथ पैकेज स्थापित करने का प्रयास करें :
sudo apt-get install libqt5x11extras5

नाम अलग हो सकता है। आप इसे खोज कर पता लगा सकते हैं:
sudo apt-cache search qt5 | grep 'X11 extras'

और आपको परिणाम के रूप में पैकेज का नाम मिलता है:

libqt5x11extras5 - Qt 5 X11 एक्स्ट्रा


3

अपने एप्लिकेशन निष्पादन योग्य पर ldd चलाएँ यह देखने के लिए कि यह लाइब्रेरी निर्भरता को कैसे हल करता है।

यह भी समझने के लिए पढ़ा जाना चाहिए कि गुई आवेदन के साधारण मामले में आवश्यक पुस्तकालयों की क्या आवश्यकता है:

http://qt-project.org/doc/qt-5/linux-deployment.html


2

मेरे ubuntu प्रकार में:

sudo ln -sf /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/ /usr/bin/platforms

काम कर सकते हैं


1
यह एक अच्छा जवाब नहीं है क्योंकि यह खड़ा है। कृपया समझाने के लिए संपादित करें कि वास्तव में वह क्या करता है।
YouAGitForNotUsingGit

मेरे लिए काम नहीं किया
रेटबर्ट

2

जो लोग अभी भी इंटरनेट में वहाँ बाहर हर दूसरे विकल्प कोशिश कर के बाद फंस रहे हैं के लिए, आप सही पथ है जहाँ से इस पर गौर कर सकते कुख्यात libqxcb.so में खोजा जा रहा है, उद्घाटन के लिए / से लोड हो रहा है QtApp ( VirtualBox-5.2.8है Qt, मेरे मामले में एप्लिकेशन) का उपयोग स्ट्रेस टूल। मेरे मामले में, जब से मैं VirtualBox-5.2.8इसके स्रोत से निर्माण कर रहा था , यह libqxcb.soनीचे के स्थान में खोज रहा था :
"...VirtualBox-5.2.8/out/linux.amd64/release/bin/platforms/" और defaultपुस्तकालय पथ, Qtस्थापना पथ, आदि में नहीं। इसलिए, कोई भी lddजाँच और अन्य समाधान काम नहीं किया। और सेटिंग भी QT_DEBUG_PLUGINS=1किसी भी अतिरिक्त लॉग का उत्पादन नहीं किया।

वर्चुअलबॉक्स बाइनरी पर रनिंग स्ट्रेस जो मैंने Ubuntu 17.10 x86_64 पर Clang / LLVM का उपयोग करके बनाया है:

...VirtualBox-5.2.8$ strace ./out/linux.amd64/release/bin/VirtualBox

.
.
.
access(".../VirtualBox-5.2.8/out/linux.amd64/release/bin/platforms/.", F_OK) = -1 ENOENT (No such file or directory)
write(2, "Qt FATAL: ", 10Qt FATAL: )              = 10
write(2, "This application failed to start"..., 154This application failed to start because it could not find or load the Qt platform plugin "xcb"
in "".

Reinstalling the application may fix this problem.) = 154
.
.
.

यह मेरा था hitting-the-nail-on-its-headपल, और मैं बनाया symlinkस्थापित से Qt5.10.1की platformsनीचे उल्लेख निर्देशिका: "...Qt5.10.1/Tools/QtCreator/lib/Qt/plugins/platforms/"पर मार्ग है जो की खोज "...VirtualBox-5.2.8/out/linux.amd64/release/bin/"। इस प्रकार, VirtualBox-5.2.8लिनक्स पर स्रोत से निर्मित ( Ubuntu 17.10 x86_64) का उपयोग करके Clang/LLVM, अंत में सफलतापूर्वक लॉन्च किया गया !

वास्तव में, यहां एक और दिलचस्प बात यह है कि, मैंने VirtualBox-5.2.8पूरी तरह से पर्याप्त प्रयास के बाद उपयोग Clang/Clang++/LLVMकरने के लिए बनाया है Ubuntu 17.10 x86_64- इसके लिए FreeBSD, VirtualBoxउपयोग करने के लिए निर्माण के लिए पहले से ही एक बंदरगाह है, clangलेकिन लिनक्स के लिए, यह बहुत हद तक निर्भर है GCCजैसा कि मैंने देखा और इसलिए इसे प्राप्त करने के लिए बहुत प्रयास किया। इस मुद्दे पर सफलतापूर्वक सक्षम होने के लिए निर्माण VirtualBox-5.2.8अपने स्रोत का उपयोग करने से Clang/Clang++/LLVMपर Ubuntu 17.10 x86_64लक्ष्य के लिए Linux/AMD64( Ubuntu 17.10 x86_64) और सफलतापूर्वक इस कुख्यात के साथ-साथ अन्य मुद्दों को हल करने के बाद इसे लॉन्च libqxcb.soनहीं।

चीयर्स।


1

जब मैं उबंटू 18.04 पर एमुलेटर चला रहा हूं तो यह कुछ समस्याओं को हल करता है।

$ vim ~ / .bashrc

फ़ाइल के अंत में निम्नलिखित पंक्तियाँ जोड़ें। मैं अपने Android SDK पर स्थापित करता हूं/opt/Android/Sdk

export ANDROID_HOME=/opt/Android/Sdk
export ANDROID_SDK_ROOT=/opt/Android/Sdk
export ANDROID_AVD_HOME=/home/<your name>/.android/avd
export LD_LIBRARY_PATH="/opt/Android/Sdk/emulator/lib64:$LD_LIBRARY_PATH"
export QT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/x86_64-linux-gnu/qt5/plugins

1

इसे चलाने से यह मेरे लिए हल हो गया:

sudo apt-get --reinstall install libqt5dbus5 \
libqt5widgets5 libqt5network5 libqt5gui5 libqt5core5a \
libdouble-conversion1 libxcb-xinerama0

0

ऐसा लगता है कि इसके पीछे कई अलग-अलग चीजें हो सकती हैं। मेरे मामले में (डेबियन 9.7), QT_DEBUG_PLUGINS = 1 ने लापता पुस्तकालयों को वापस खोजने में मदद की, और

$ sudo apt-get install libxcb-render-use0 libxcb-image0 libxcb-keysyms1 libxcb-icccm4

समस्या का हल किया।



-3

अपने आवेदन निर्देशिका में plugins/platforms/libqxcb.soअपने qtस्थापित से कॉपी करें platforms/libqxcb.so

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.