Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't find Qt platform plugin "xcb" #1383

Closed
rhjohnstone opened this issue Aug 1, 2017 · 13 comments
Closed

Can't find Qt platform plugin "xcb" #1383

rhjohnstone opened this issue Aug 1, 2017 · 13 comments

Comments

@rhjohnstone
Copy link

Using latest snapshot (although also had the same issue with latest stable version) of OpenCOR on Ubuntu 16.04. When I try to run OpenCOR, I get

This application failed to start because it could not find or load the Qt platform plugin "xcb"
in "".

Available platform plugins are: xcb.

Reinstalling the application may fix this problem.
Aborted (core dumped)
@agarny
Copy link
Contributor

agarny commented Aug 1, 2017

Sorry for the problem you are experiencing @rhjohnstone.

I must confess that I was surprised by your report, so I double checked on a vanilla (virtual) machine running Ubuntu 16.04 LTS (up-to-date with regards to Ubuntu-related updates) and, as I expected, I am able to run OpenCOR 0.5 and the 2017-07-23 snapshot without any problems (both by running ./OpenCOR from the command line and by double clicking the OpenCOR binary).

OpenCOR normally comes with everything it needs to run on a vanilla version of Ubuntu. So, I am not sure what might be going wrong with your system.

If you do find . under your OpenCOR folder, do you get the following files for OpenCOR 0.5:

.
./NOTICE.txt
./plugins
./plugins/imageformats
./plugins/imageformats/libqjpeg.so
./plugins/bearer
./plugins/bearer/libqgenericbearer.so
./plugins/printsupport
./plugins/printsupport/libcupsprintersupport.so
./plugins/OpenCOR
./plugins/OpenCOR/libCore.so
./plugins/OpenCOR/libCellMLAPI.so
./plugins/OpenCOR/libDataStore.so
./plugins/OpenCOR/libzlib.so
./plugins/OpenCOR/libPMRWindow.so
./plugins/OpenCOR/libSUNDIALS.so
./plugins/OpenCOR/libFourthOrderRungeKuttaSolver.so
./plugins/OpenCOR/libCOMBINESupport.so
./plugins/OpenCOR/libSEDMLAPI.so
./plugins/OpenCOR/libBioSignalMLAPI.so
./plugins/OpenCOR/libSEDMLSupport.so
./plugins/OpenCOR/libCompiler.so
./plugins/OpenCOR/libCellMLTextView.so
./plugins/OpenCOR/liblibgit2.so
./plugins/OpenCOR/libCellMLAnnotationView.so
./plugins/OpenCOR/libQwt.so
./plugins/OpenCOR/libFileOrganiserWindow.so
./plugins/OpenCOR/libCVODESolver.so
./plugins/OpenCOR/libFileBrowserWindow.so
./plugins/OpenCOR/libMathMLViewerWidget.so
./plugins/OpenCOR/libCellMLTools.so
./plugins/OpenCOR/libRawTextView.so
./plugins/OpenCOR/libEditorWidget.so
./plugins/OpenCOR/libQScintilla.so
./plugins/OpenCOR/libForwardEulerSolver.so
./plugins/OpenCOR/libWebViewerWidget.so
./plugins/OpenCOR/libGraphPanelWidget.so
./plugins/OpenCOR/libBioSignalMLDataStore.so
./plugins/OpenCOR/libZIPSupport.so
./plugins/OpenCOR/libSEDMLEditingView.so
./plugins/OpenCOR/libCellMLEditingView.so
./plugins/OpenCOR/libCSVDataStore.so
./plugins/OpenCOR/libPMRSupport.so
./plugins/OpenCOR/libHeunSolver.so
./plugins/OpenCOR/libRawCellMLView.so
./plugins/OpenCOR/libSingleCellView.so
./plugins/OpenCOR/libEditingView.so
./plugins/OpenCOR/libIDASolver.so
./plugins/OpenCOR/libLLVM.so
./plugins/OpenCOR/libSecondOrderRungeKuttaSolver.so
./plugins/OpenCOR/libKINSOLSolver.so
./plugins/OpenCOR/libRawSEDMLView.so
./plugins/OpenCOR/libSBMLAPI.so
./plugins/OpenCOR/libStandardSupport.so
./plugins/OpenCOR/libHelpWindow.so
./plugins/OpenCOR/libQScintillaSupport.so
./plugins/OpenCOR/libCellMLSupport.so
./plugins/sqldrivers
./plugins/sqldrivers/libqsqlite.so
./plugins/platforms
./plugins/platforms/libqxcb.so
./models
./models/noble_model_1962.cellml
./models/van_der_pol_model_1928.cellml
./models/hodgkin_huxley_squid_axon_model_1952.cellml
./lib
./lib/libgstapp-0.10.so.0
./lib/libcevas.so.1
./lib/libQt5Multimedia.so.5
./lib/libQt5DBus.so.5
./lib/libQt5Sql.so.5
./lib/libgstpbutils-0.10.so.0
./lib/libccgs.so.3
./lib/libceleds.so.1
./lib/libcuses.so.1
./lib/libQt5WebChannel.so.5
./lib/libicudata.so.56
./lib/libgstreamer-0.10.so.0
./lib/libQt5Network.so.5
./lib/libbiosignalml.so.0
./lib/libcellml.so.2
./lib/libQt5XmlPatterns.so.5
./lib/libQt5WebKitWidgets.so.5
./lib/libgstinterfaces-0.10.so.0
./lib/libsedml.so.0
./lib/libQt5PrintSupport.so.5
./lib/libstdc++.so.6
./lib/libQt5Sensors.so.5
./lib/libicuuc.so.56
./lib/libQt5Positioning.so.5
./lib/libQt5MultimediaWidgets.so.5
./lib/libQt5Qml.so.5
./lib/libQt5WebKit.so.5
./lib/libQt5CLucene.so.5
./lib/libceledsexporter.so.1
./lib/libQt5Core.so.5
./lib/libQt5Quick.so.5
./lib/libicui18n.so.56
./lib/libQt5Widgets.so.5
./lib/libgstbase-0.10.so.0
./lib/libQt5Svg.so.5
./lib/libtypedobject.so.1
./lib/libQt5Xml.so.5
./lib/libvacss.so.1
./lib/libQt5Gui.so.5
./lib/libQt5OpenGL.so.5
./lib/libmalaes.so.1
./lib/libsbml.so.5
./lib/libgstvideo-0.10.so.0
./lib/libannotools.so.2
./lib/libQt5Help.so.5
./lib/libQt5XcbQpa.so.5
./OpenCOR
./LICENSE.txt
./bin
./bin/OpenCOR
./formats
./formats/F77.xml
./formats/Python.xml
./formats/README.txt
./formats/MATLAB.xml
./formats/C.xml

and the the following ones for the 2017-07-23 snapshot:

.
./NOTICE.txt
./plugins
./plugins/imageformats
./plugins/imageformats/libqjpeg.so
./plugins/xcbglintegrations
./plugins/xcbglintegrations/libqxcb-glx-integration.so
./plugins/xcbglintegrations/libqxcb-egl-integration.so
./plugins/printsupport
./plugins/printsupport/libcupsprintersupport.so
./plugins/OpenCOR
./plugins/OpenCOR/libPMRWorkspacesWindow.so
./plugins/OpenCOR/libCore.so
./plugins/OpenCOR/libCellMLAPI.so
./plugins/OpenCOR/libDataStore.so
./plugins/OpenCOR/libzlib.so
./plugins/OpenCOR/libPMRWindow.so
./plugins/OpenCOR/libSUNDIALS.so
./plugins/OpenCOR/libFourthOrderRungeKuttaSolver.so
./plugins/OpenCOR/libCOMBINESupport.so
./plugins/OpenCOR/libZincWidget.so
./plugins/OpenCOR/libSEDMLAPI.so
./plugins/OpenCOR/libBioSignalMLAPI.so
./plugins/OpenCOR/libSEDMLSupport.so
./plugins/OpenCOR/libCompiler.so
./plugins/OpenCOR/libCellMLTextView.so
./plugins/OpenCOR/liblibgit2.so
./plugins/OpenCOR/libCellMLAnnotationView.so
./plugins/OpenCOR/libQwt.so
./plugins/OpenCOR/libFileOrganiserWindow.so
./plugins/OpenCOR/libSimulationSupport.so
./plugins/OpenCOR/libCVODESolver.so
./plugins/OpenCOR/libFileBrowserWindow.so
./plugins/OpenCOR/libMathMLViewerWidget.so
./plugins/OpenCOR/libOpenSSL.so
./plugins/OpenCOR/libCellMLTools.so
./plugins/OpenCOR/libRawTextView.so
./plugins/OpenCOR/libEditorWidget.so
./plugins/OpenCOR/libZinc.so
./plugins/OpenCOR/libQScintilla.so
./plugins/OpenCOR/libWebBrowserWindow.so
./plugins/OpenCOR/libForwardEulerSolver.so
./plugins/OpenCOR/libWebViewerWidget.so
./plugins/OpenCOR/libGraphPanelWidget.so
./plugins/OpenCOR/libBioSignalMLDataStore.so
./plugins/OpenCOR/libZIPSupport.so
./plugins/OpenCOR/libOAuth.so
./plugins/OpenCOR/libSEDMLEditingView.so
./plugins/OpenCOR/libCellMLEditingView.so
./plugins/OpenCOR/libCSVDataStore.so
./plugins/OpenCOR/libPMRSupport.so
./plugins/OpenCOR/libHeunSolver.so
./plugins/OpenCOR/libRawCellMLView.so
./plugins/OpenCOR/libSimulationExperimentView.so
./plugins/OpenCOR/libEditingView.so
./plugins/OpenCOR/libIDASolver.so
./plugins/OpenCOR/libSecondOrderRungeKuttaSolver.so
./plugins/OpenCOR/libKINSOLSolver.so
./plugins/OpenCOR/libLLVMClang.so
./plugins/OpenCOR/libLibXDiff.so
./plugins/OpenCOR/libRawSEDMLView.so
./plugins/OpenCOR/libSBMLAPI.so
./plugins/OpenCOR/libStandardSupport.so
./plugins/OpenCOR/libHelpWindow.so
./plugins/OpenCOR/libQScintillaSupport.so
./plugins/OpenCOR/libCellMLSupport.so
./plugins/sqldrivers
./plugins/sqldrivers/libqsqlite.so
./plugins/platforms
./plugins/platforms/libqxcb.so
./models
./models/noble_model_1962.cellml
./models/van_der_pol_model_1928.cellml
./models/hodgkin_huxley_squid_axon_model_1952.cellml
./lib
./lib/libgstapp-0.10.so.0
./lib/libcevas.so.1
./lib/libQt5Multimedia.so.5
./lib/libQt5DBus.so.5
./lib/libQt5Sql.so.5
./lib/libgstpbutils-0.10.so.0
./lib/libccgs.so.3
./lib/libo2.so.1.0.0
./lib/libceleds.so.1
./lib/libsundials_arkode.so.1
./lib/libcuses.so.1
./lib/libsundials_idas.so.1
./lib/libQt5WebChannel.so.5
./lib/libicudata.so.56
./lib/libgstreamer-0.10.so.0
./lib/libGL.so.1
./lib/libQt5Network.so.5
./lib/libqscintilla2_qt5.so.13
./lib/libbiosignalml.so.0
./lib/libcellml.so.2
./lib/libQt5XmlPatterns.so.5
./lib/libQt5WebKitWidgets.so.5
./lib/libgstinterfaces-0.10.so.0
./lib/libsedml.so.0
./lib/libQt5PrintSupport.so.5
./lib/libsundials_nvecserial.so.2
./lib/libstdc++.so.6
./lib/libQt5Sensors.so.5
./lib/libicuuc.so.56
./lib/libQt5Positioning.so.5
./lib/libQt5MultimediaWidgets.so.5
./lib/libsundials_cvodes.so.2
./lib/libQt5Qml.so.5
./lib/libQt5WebKit.so.5
./lib/libsundials_kinsol.so.2
./lib/libQt5CLucene.so.5
./lib/libceledsexporter.so.1
./lib/libQt5Core.so.5
./lib/libgit2.so.26
./lib/libQt5Quick.so.5
./lib/libicui18n.so.56
./lib/libqwt.so.6
./lib/libQt5Widgets.so.5
./lib/libgstbase-0.10.so.0
./lib/libbz2.so.1.0
./lib/libQt5Svg.so.5
./lib/libtypedobject.so.1
./lib/libQt5Xml.so.5
./lib/libz.so.1
./lib/libvacss.so.1
./lib/libQt5Gui.so.5
./lib/libQt5OpenGL.so.5
./lib/libssl.so.1.0.0
./lib/libmalaes.so.1
./lib/libxdiff.so.0
./lib/libllvmclang.so.4
./lib/libcrypto.so.1.0.0
./lib/libsbml.so.5
./lib/libzinc.so.3
./lib/libgstvideo-0.10.so.0
./lib/libannotools.so.2
./lib/libqwtmathml.so.6
./lib/libQt5Help.so.5
./lib/libQt5XcbQpa.so.5
./OpenCOR
./LICENSE.txt
./bin
./bin/OpenCOR
./formats
./formats/F77.xml
./formats/Python.xml
./formats/README.txt
./formats/MATLAB.xml
./formats/C.xml

As you can see, you should have an entry for ./plugins/platforms/libqxcb.so in both cases.

@rhjohnstone
Copy link
Author

I ran that command, and do indeed get the same output (at least, it was the same number of lines and in a different order, so I assume it was the same), including ./plugins/platforms/libqxcb.so, so I guess the problem lies somewhere deeper in my computer.

@rhjohnstone
Copy link
Author

Solved.

Based on a suggestion from here for the same problem, I deleted lib/libstdc++.so.6, and was then able to run OpenCOR.

I don't know enough to know why this worked, but it did!

@agarny
Copy link
Contributor

agarny commented Aug 1, 2017

Glad that you got it to work @rhjohnstone although it is rather frustrating that you had to do that since we need to ship libstdc++ for OpenCOR to work on Ubuntu 14.04 LTS (which we still need to support), and not to mention that it all works fine on a vanilla version of Ubuntu 16.04 LTS. Oh well... :s

agarny added a commit to agarny/opencor that referenced this issue Aug 1, 2017
@dbrnz
Copy link
Contributor

dbrnz commented Aug 1, 2017

@agarny, from the answer to this (referenced from here) it appears that defining _GLIBCXX_USE_CXX11_ABI to be 0 may resolve things.

@agarny
Copy link
Contributor

agarny commented Aug 2, 2017

Thanks @dbrnz. I wonder if -D_GLIBCXX_USE_CXX11_ABI=0 would only be needed to build OpenCOR itself and not also its plugins and third-party libraries. It might be the case since it only seems to be an issue to get OpenCOR to start on Linux. Anyway, it would be great if that was to be the case. I could certainly generate a special version of OpenCOR that does that. However, I wouldn't be able to test it myself (since everything works fine for me on my vanilla copy of Ubuntu 16.04 LTS). So, @rhjohnstone (or @dbrnz, if you are also experiencing the same problem?), would you mind trying a special snapshot for us to test that 'solution'?

@rhjohnstone
Copy link
Author

@agarny, I'm happy to test a new snapshot.

@dbrnz
Copy link
Contributor

dbrnz commented Aug 2, 2017

@agarny, I've managed to reproduce the problem under Ubuntu 16.04. The 2017-07-23 snapshot worked just fine until I ran the software updater to pull in the latest versions of packages...

@agarny
Copy link
Contributor

agarny commented Aug 2, 2017

@dbrnz: I hadn't upgraded my Ubuntu 16.04 LTS box since I left (a bit more than a week ago now), but I have just done so and can now confirm the issue. So, it's all good, I will be able to test things locally (thanks @rhjohnstone for agreeing to help, the more the better).

agarny added a commit to agarny/opencor that referenced this issue Aug 2, 2017
@agarny agarny reopened this Aug 2, 2017
agarny added a commit to agarny/opencor that referenced this issue Aug 2, 2017
@agarny
Copy link
Contributor

agarny commented Aug 2, 2017

Ok, I have just tried -D_GLIBCXX_USE_CXX11_ABI=0 and it doesn't make any difference. Also, I have read here and there that also it might work in some cases, it's not the best option. So, in the end, I am going to set our requirements for GCC to be 5.x.

agarny added a commit to agarny/opencor that referenced this issue Aug 2, 2017
agarny added a commit to agarny/opencor that referenced this issue Aug 2, 2017
agarny added a commit to agarny/opencor that referenced this issue Aug 3, 2017
@agarny
Copy link
Contributor

agarny commented Aug 4, 2017

FTR, I have created an empty-shell version of OpenCOR on Ubuntu 14.04 LTS using GCC/G++ 5.4.1 (i.e. the latest version available). I packaged that version (together with the standard C++ library that is available on Ubuntu 14.04 LTS) and tried it on a vanilla Ubuntu 16.04 LTS and... it didn't work. I got that message about the Qt platform plugin "xcb". So, it seems like it's not only an issue with GCC/G++.

From there, I have replaced the standard C++ library that is available on Ubuntu 14.04 LTS with that available on Ubuntu 16.04 LTS. Obviously, OpenCOR works fine with it on Ubuntu 16.04 LTS, but it also works fine on Ubuntu 14.04 LTS.

So, the solution seems to be using the standard C++ library that comes with Ubuntu 16.04 LTS and (as before) ship it with OpenCOR, so that OpenCOR can also work on Ubuntu 14.04 LTS.

I am therefore going to do this from now on, and update our documentation accordingly. (Note that we should still be able to build OpenCOR on Ubuntu 14.04 LTS for our continuous integration on Travis CI.) (Will do that sometime next week when I am back home.)

@agarny
Copy link
Contributor

agarny commented Aug 5, 2017

Some more thinking: I am concerned about having to ship the 16.04 standard C++ library to get OpenCOR to work on 14.04. Indeed, I know it works fine on 14.04, but who knows about 14.10, 15.04, 15.10, 16.10 and 17.04! So, in the end, I think it's best to drop our support for 14.04 and now support 16.04 and above, since 16.04 is the latest LTS. This means that we won't be shipping the standard C++ library with OpenCOR anymore. Does that sound good to you @dbrnz?

@dbrnz
Copy link
Contributor

dbrnz commented Aug 5, 2017

Sounds good to me @agarny.

agarny added a commit to agarny/opencor that referenced this issue Aug 5, 2017
agarny added a commit to agarny/opencor that referenced this issue Aug 6, 2017
@agarny agarny closed this as completed in e035a28 Aug 6, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants