I wrote application for linux which uses Qt5.
But when I am trying to launch it on the linux without Qt SDK installed, the output in console is:
Failed to load platform plugin "xcb". Available platforms are:
How can I fix this? May be I need to copy some plugin file?
When I use ubuntu with Qt5 installed, but I rename Qt directory, the same problem occurs. So, it uses some file from Qt directory...
UPDATE:
when I create in the app dir "platforms" folder with the file libqxcb.so, the app still doesnot start, but the error message changes:
Failed to load platform plugin "xcb". Available platforms are:
xcb
How can this happen? How can platform plugin be available but can't be loaded?
Use ldd (man ldd) to show shared library dependencies. Running this on libqxcb.so
.../platforms$ ldd libqxcb.so
shows that xcb depends on libQt5DBus.so.5 in addition to libQt5Core.so.5 and libQt5Gui.so.5 (and many other system libs). Add libQt5DBus.so.5 to your collection of shared libs and you should be ready to move on.
As was posted earlier, you need to make sure you install the platform plugins when you deploy your application. Depending on how you want to deploy things, there are two methods to tell your application where the platform plugins (e.g. platforms/plugins/libqxcb.so) are at runtime which may work for you.
The first is to export the path to the directory through the QT_QPA_PLATFORM_PLUGIN_PATH variable.
QT_QPA_PLATFORM_PLUGIN_PATH=path/to/plugins ./my_qt_app
or
export QT_QPA_PLATFORM_PLUGIN_PATH=path/to/plugins
./my_qt_app
The other option, which I prefer is to create a qt.conf file in the same directory as your executable. The contents of which would be:
[Paths]
Plugins=/path/to/plugins
More information regarding this can be found here and at using qt.conf
I tried to start my binary, compiled with Qt 5.7, on Ubuntu 16.04 LTS where Qt 5.5 is preinstalled. It didn't work.
At first, I inspected the binary itself with ldd as was suggested here, and satisfied all "not found" dependencies. Then this notorious This application failed to start because it could not find or load the Qt platform plugin "xcb" error was thrown.
How to resolve this in Linux
Firstly you should create platforms directory where your binary is, because it is the place where Qt looks for XCB library. Copy libqxcb.so there. I wonder why authors of other answers didn't mention this.
Then you may want to run your binary with QT_DEBUG_PLUGINS=1 environment variable set to check which dependencies of libqxcb.so are not satisfied. (You may also use ldd for this as suggested in the accepted answer).
The command output may look like this:
me#xerus:/media/sf_Qt/Package$ LD_LIBRARY_PATH=. QT_DEBUG_PLUGINS=1 ./Binary
QFactoryLoader::QFactoryLoader() checking directory path "/media/sf_Qt/Package/platforms" ...
QFactoryLoader::QFactoryLoader() looking at "/media/sf_Qt/Package/platforms/libqxcb.so"
Found metadata in lib /media/sf_Qt/Package/platforms/libqxcb.so, metadata=
{
"IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
"MetaData": {
"Keys": [
"xcb"
]
},
"className": "QXcbIntegrationPlugin",
"debug": false,
"version": 329472
}
Got keys from plugin meta data ("xcb")
loaded library "/media/sf_Qt/Package/platforms/libqxcb.so"
QLibraryPrivate::loadPlugin failed on "/media/sf_Qt/Package/platforms/libqxcb.so" : "Cannot load library /media/sf_Qt/Package/platforms/libqxcb.so: (/usr/lib/x86_64-linux-gnu/libQt5DBus.so.5: version `Qt_5' not found (required by ./libQt5XcbQpa.so.5))"
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)
Note the failing libQt5DBus.so.5 library. Copy it to your libraries path, in my case it was the same directory where my binary is (hence LD_LIBRARY_PATH=.). Repeat this process until all dependencies are satisfied.
P.S. thanks to the author of this answer for QT_DEBUG_PLUGINS=1.
I tried the main parts of each answer, to no avail. What finally fixed it for me was to export the following environment variables:
LD_LIBRARY_PATH=/usr/local/lib:~/Qt/5.9.1/gcc_64/lib
QT_QPA_PLATFORM_PLUGIN_PATH=~/Qt/5.9.1/gcc_64/plugins/
Ubuntu 16.04 64bit.
I got the problem for apparently no reasons. The night before I watched a movie on my VideoLan instance, that night I would like to watch another one with VideoLan. VLC just didn't want to run because of the error into the question.
I google a bit and I found the solution it solved my problem: from now on, VLC is runnable just like before. The solution is this comand:
sudo ln -sf /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/ /usr/bin/
I am not able to explain what are its consequencies, but I know it creates some missing symbolic link.
Since version 5, Qt uses a platform abstraction system (QPA) to abstract from the underlying platform.
The implementation for each platform is provided by plugins. For X11 it is the XCB plugin. See Qt for X11 requirements for more information about the dependencies.
There might be many causes to this problem. The key is to use
export QT_DEBUG_PLUGINS=1
before you run your Qt application. Then, inspect the output, which will point you to the direction of the error. In my case it was:
Cannot load library /opt/nao/plugins/platforms/libqxcb.so: (/opt/nao/bin/../lib/libz.so.1: version `ZLIB_1.2.9' not found (required by /usr/lib/x86_64-linux-gnu/libpng16.so.16))
But that is solved in different threads. See for instance https://stackoverflow.com/a/50097275/2408964.
Probably this information will help. I was on Ubuntu 18.04 and when I tried to install Krita, using the ppa method, I got this error:
This application failed to start because it could not find or load the Qt platform plugin "xcb" in "".
Available platform plugins are: linuxfb, minimal, minimalegl, offscreen, wayland-egl, wayland, xcb.
Reinstalling the application may fix this problem.
Aborted
I tried all the solutions that I found in this thread and other webs without any success.
Finally, I found a post where the author mention that is possible to activate the debugging tool of qt5 using this simple command:
export QT_DEBUG_PLUGINS=1
After adding this command I run again krita I got the same error, however this time I knew the cause of that error.
libxcb-xinerama.so.0: cannot open shared object file: No such file or directory.
This error prevents to the "xcb" to load properly. So, the solution will be install the `libxcb-xinerama.so.0" right? However, when I run the command:
sudo apt install libxcb-xinerama
The lib was already installed. Now what Teo? Well, then I used an old trick :) Yeah, that one --reinstall
sudo apt install --reinstall libxcb-xinerama
TLDR: This last command solved my problem.
I ran into a very similar problem with the same error message. First, debug some by turning on the Qt Debug printer with the command line command:
export QT_DEBUG_PLUGINS=1
and rerun the application. For me this revealed the following:
"Cannot load library /home/.../miniconda3/lib/python3.7/site-packages/PyQt5/Qt/plugins/platforms/libqxcb.so: (libxkbcommon-x11.so.0: cannot open shared object file: No such file or directory)"
"Cannot load library /home/.../miniconda3/lib/python3.7/site-packages/PyQt5/Qt/plugins/platforms/libqxcb.so: (libxkbcommon-x11.so.0: cannot open shared object file: No such file or directory)"
Indeed, I was missing libxkbcommon-x11.so.0 and libxkbcommon-x11.so.0. Next, check your architecture using dpkg from the linux command line. (For me, the command "arch" gave a different and unhelpful result)
dpkg --print-architecture #result for me: amd64
I then googled "libxkbcommon-x11.so.0 ubuntu 18.04 amd64", and likewise for libxkbcommon-x11.so.0, which yields those packages on packages.ubuntu.com. That told me, in retrospect unsurprisingly, I'm missing packages called libxkbcommon-x11-0 and libxkbcommon0, and that installing those packages will include the needed files, but the dev versions will not. Then the solution:
sudo apt-get update
sudo apt-get install libxkbcommon0
sudo apt-get install libxkbcommon-x11-0
So, I spent about a day trying to figure out what was the issue; tried all the proposed solutions, but none of that worked like installing xcb libs or exporting Qt plugins folder. The solution that suggested to use QT_DEBUG_PLUGINS=1 to debug the issue didn't provide me a direct insight like in the answer - instead I was getting something about unresolved symbols within Qt5Core.
That gave me a hint, though: what if it's trying to use different files from different Qt installations? On my machine I had standard version installed in /home/username/Qt/ and some local builds within my project that I compiled by myself (I have other custom built kits as well in other locations). Whenever I tried to use any of the kits (installed by Qt maintenance tool or built by myself), I would get an "xcb error".
The solution was simple: provide the Qt path through CMAKE_PREFIX_PATH and not though Qt5_DIR as I did, and it solved the problem. Example:
cmake .. -DCMAKE_PREFIX_PATH=/home/username/Qt/5.11.1/gcc_64
I faced the same problem when after installing Viber. It had all required qt libraries in /opt/viber/plugins/.
I checked dependencies of /opt/viber/plugins/platforms/libqxcb.so and found missing dependencies. They were libxcb-render.so.0, libxcb-image.so.0, libxcb-icccm.so.4, libxcb-xkb.so.1
So I resolved my issue by installing missing packages with this libraries:
apt-get install libxcb-xkb1 libxcb-icccm4 libxcb-image0 libxcb-render-util0
I like the solution with qt.conf.
Put qt.conf near to the executable with next lines:
[Paths]
Prefix = /path/to/qtbase
And it works like a charm :^)
For a working example:
[Paths]
Prefix = /home/user/SDKS/Qt/5.6.2/5.6/gcc_64/
The documentation on this is here: https://doc.qt.io/qt-5/qt-conf.html
All you need to do is
pip uninstall PyQt5
and
conda install pyqt
Most of the problem of pyqt can be fixed by this simplest solution.
In my case, I needed to deploy two Qt apps on an Ubuntu virtualbox guest. One was command-line ("app"), the other GUI_based ("app_GUI").
I used "ldd app" to find out what the required libs are, and copied them
to the Ubuntu guest.
While the command-line executable "app" worked ok, the GUI-based executable crashed, giving
the "Failed to load platform plugin "xcb" error. I checked ldd for libxcb.so, but this too had no missing dependencies.
The problem seemed to be that while I did copy all the right libraries I accidentally had copied also libraries that were already present at the guest system.. meaning that (a) they were unnecessary to copy them in the first place and (b) worse, copying them produced incompatibilities between the install libraries.
Worse still, they were undetectable by ldd like I said..
The solution? Make sure that you copy libraries shown as missing by ldd and absolutely no extra libraries.
In my case missing header files were the reason libxcb was not built by Qt. Installing them according to https://wiki.qt.io/Building_Qt_5_from_Git#Linux.2FX11 resolved the issue:
yum install libxcb libxcb-devel xcb-util xcb-util-devel mesa-libGL-devel libxkbcommon-devel
Folks trying to get this started on Ubuntu 20.04 please try to run this and see if this solves the problem. This worked for me
sudo apt-get update -y
sudo apt-get install -y libxcb-xinerama0
I link all Qt stuff statically to the generic Linux builds of my open source projects. It makes life a bit easier. You just need to build static versions of Qt libraries first. Of course this cannot be applied to closed source software due to licensing issues. The deployment of Qt5 apps on Linux is currently a bit problematic, because Ubuntu 12.04, for example, doesn't have Qt5 libraries in the package repositories.
I had this problem, and on a hunch I removed the Qt Configs from my environment. I.e.,
rm -rf ~/.config/Qt*
Then I started qtcreator and it reconfigured itself with the existing state of the machine. It no longer remembered where my projects were, but that just meant I had to browse to them "for the first time" again.
But more importantly it built itself a coherent set of library paths, so I could rebuild and run my project executables again without the xcb or qxcb libraries going missing.
I faced the same situation, but on a Ubuntu 20.04 VM.
TL;DR: Check file permissions.
What I did:
I copied the Qt libs required to /usr/local/lib/x86_64-linux-gnu/ and added it to LD_LIBRARY_PATH
I copied the platforms folder from Qt to my application directory and added it to QT_PLUGIN_PATH
I ran ldd on the executable and in the offending libqxcb.so (ldd libqxcb.so), and it complains about some dependencies although ldconfig listed them as found.
linux-vdso.so.1 (0x00007ffee19af000)
libQt5XcbQpa.so.5 => not found
libfontconfig.so.1 => /lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007f7cb18fb000)
libfreetype.so.6 => /lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007f7cb183c000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f7cb1820000)
libQt5Gui.so.5 => /usr/local/lib/x86_64-linux-gnu/libQt5Gui.so.5 (0x00007f7cb0fd4000)
libQt5DBus.so.5 => not found
I used export QT_DEBUG_PLUGINS=1 for further info. It complains about missing files, although they are there.
What I found:
For some reason, when copying to the VM through the shared folder the files permissions were not the correct ones.
Thus, I ran: sudo chmod 775 * on the libs and voilà.
I solved the issue through this https://github.com/NVlabs/instant-ngp/discussions/300
pip uninstall opencv-python
pip install opencv-python-headless
This seems to have been a problem with the cv2 Python package and how it loops in Qt
sudo ln -sf /usr/lib/...."adapt-it"..../qt5/plugins/platforms/ /usr/bin/
It creates the symbolic link it's missed. Good for QT ! Good for VLC !!
I have build ParaView superbuild following steps that I found in another question.
Steps to build ParaView superbuild in Windows 10:
Install Visual Studio 2015 community with all C++ related tools
Install cmake
Install git bash
Install Ninja
Install Qt 5.9.9 VS2015 64 bits
then :
Open VS2015 x64 Native Tools Command Prompt and execute: cmake-gui
ENABLE_qt5 and USE_SYSTEM_qt5
ENABLE_python
ENABLE_python2
and add: Qt5_DIR = C:/Qt/5.9.9/msvc2015_64/lib/cmake/Qt5
configure
generate
Result:
Determined source version for paraview: 5.7.0
Enabling cxx11 as requested.
Enabling ftjam as requested.
Enabling nlohmannjson as requested.
Enabling zlib for: hdf5
Enabling szip for: hdf5
Enabling hdf5 for: paraview
Enabling python2 as requested.
Enabling python as requested.
Enabling qt5 as requested.
Enabling paraview as requested.
Building projects: cxx11, ftjam, nlohmannjson, zlib, szip, hdf5, python2, python, qt5, paraview
Configuring done
Generating done
Then:
close cmake-gui
ninja
After a couple hours, it seems to build successfully.
I then download Clone1 from https://gitlab.kitware.com/paraview/paraview/tree/master/Examples/CustomApplications
Open VS2015 x64 Native Tools Command Prompt and execute: cmake-gui
Add:
Qt5_DIR = C:/Qt/5.9.9/msvc2015_64/lib/cmake/Qt5
ParaView_DIR = C:\Users\user\Desktop\paraview\buildvs2015\install\lib\cmake\paraview-5.7
Then:
configure
generate
And I got:
Found Python2: C:/Users/user/Desktop/paraview/buildvs2015/install/lib/python27.lib (found suitable version "2.7.15", minimum required is "2.7") found components: Development
Found OpenGL: opengl32 found components: OpenGL
Found ZLIB: C:/Users/user/Desktop/paraview/buildvs2015/install/lib/zlib.lib (found version "1.2.11")
Looking for pthread.h
Looking for pthread.h - not found
Found Threads: TRUE
Skipping example: Clone1 example requires PARAVIEW_USE_QT to be enabled. Please rebuild ParaView (or point to a different build of ParaView) with PARAVIEW_USE_QT set to TRUE
Configuring done
I have ENABLE_qt5 and USE_SYSTEM_qt5 activated, why am I getting this? How can I fix it?
Use the Clone1 example from ParaView 5.7.0, not from master.
You can find the sources in
C:\Users\user\Desktop\paraview\buildvs2015\superbuild\paraview\src\Examples\CutstomApplications\Clone1
If I try to open an existing project in Qt Creator I always get "No valid kits found".
I found a lot of Q&A around this, but on my installation I am not able to select a valid Qt version because:
In Build&Run->Kids->Desktop->QtVersion: None
I can not see any other entry in this field.
As already mentioned: It is a Fedora 25 x86_64 version.
Qt Creator gives in comand line:
Warning: No kit 'qt.57.gcc_64_kit' found. Continuing.
Is this a file which should exist somewhere? Can it be downloaded somewhere? Manual config seems to be not possible, because qt version can not be selected.
Is there any package which I did not have installed? Is there any meta package which I can use to get a valid installation?
What I have installed:
rpm -qa | grep qt5
dbusmenu-qt5-0.9.3-0.11.20150604.fc24.x86_64
qt5-qtbase-gui-5.7.0-3.fc25.x86_64
qt5-qtwebchannel-5.7.0-2.fc25.x86_64
qt5-qttools-static-5.7.0-3.fc25.x86_64
qt5-qtconfiguration-devel-0.3.1-2.fc24.x86_64
adwaita-qt5-0.4-3.fc25.x86_64
qt5-qtsvg-devel-5.7.0-2.fc25.x86_64
qt5-qtbase-common-5.7.0-3.fc25.noarch
qt5-qtlocation-devel-5.7.0-2.fc25.x86_64
qt5-qttools-libs-designer-5.7.0-3.fc25.x86_64
qt5-qtx11extras-devel-5.7.0-2.fc25.x86_64
qt5-qtserialport-5.7.0-2.fc25.x86_64
qt5-qttools-devel-5.7.0-3.fc25.x86_64
qt5-qtconfiguration-0.3.1-2.fc24.x86_64
qt5-qtwayland-devel-5.7.0-2.fc25.x86_64
qt5-qttools-libs-clucene-5.7.0-3.fc25.x86_64
qt5-qtlocation-5.7.0-2.fc25.x86_64
quazip-qt5-0.7.2-1.fc25.x86_64
qt5-qttools-libs-designercomponents-5.7.0-3.fc25.x86_64
qt5-qttools-5.7.0-3.fc25.x86_64
qt5-qtenginio-devel-1.6.1-2.fc25.x86_64
qt5-linguist-5.7.0-3.fc25.x86_64
qt5-qtwebsockets-devel-5.7.0-1.fc25.x86_64
qt5-qtconnectivity-devel-5.7.0-2.fc25.x86_64
qt5-qtsvg-5.7.0-2.fc25.x86_64
qt5-qtquickcontrols-5.7.0-1.fc25.x86_64
qt5-qtwayland-5.7.0-2.fc25.x86_64
qt5-devel-5.7.0-9.fc25.noarch
qt5-qtxmlpatterns-5.7.0-2.fc25.x86_64
qt5-qtwebkit-5.7.0-2.fc25.x86_64
qt5-qtserialport-devel-5.7.0-2.fc25.x86_64
qt5-qtaccountsservice-devel-0.6.0-2.fc24.x86_64
qt5-qttools-libs-help-5.7.0-3.fc25.x86_64
qt5-qtmultimedia-5.7.0-2.fc25.x86_64
qt5-qtimageformats-5.7.0-2.fc25.x86_64
qt5-qtsensors-5.7.0-2.fc25.x86_64
qt5-qtdoc-5.7.0-1.fc25.noarch
qt5-designer-5.7.0-3.fc25.x86_64
qt5-qtbase-static-5.7.0-3.fc25.x86_64
qt5-qtenginio-1.6.1-2.fc25.x86_64
qt5-qt3d-5.7.0-2.fc25.x86_64
qt5-qtbase-5.7.0-3.fc25.x86_64
qt5-qtdeclarative-devel-5.7.0-2.fc25.x86_64
qt5-rpm-macros-5.7.0-9.fc25.noarch
qt5-qhelpgenerator-5.7.0-3.fc25.x86_64
qt5-qtwebsockets-5.7.0-1.fc25.x86_64
qt5-qtconnectivity-5.7.0-2.fc25.x86_64
phonon-qt5-4.9.0-3.fc25.x86_64
qt5-qtscript-5.7.0-2.fc25.x86_64
qt5-qtwebchannel-devel-5.7.0-2.fc25.x86_64
qt5-gstreamer-devel-1.2.0-11.fc25.x86_64
qt5-qtaccountsservice-0.6.0-2.fc24.x86_64
phonon-qt5-backend-gstreamer-4.9.0-1.fc25.x86_64
qt5-qtscript-devel-5.7.0-2.fc25.x86_64
qt5-qtbase-devel-5.7.0-3.fc25.x86_64
qt5-qtx11extras-5.7.0-2.fc25.x86_64
polkit-qt5-1-0.112.0-8.fc25.x86_64
qt5-qdoc-5.7.0-3.fc25.x86_64
qt5-qtdeclarative-static-5.7.0-2.fc25.x86_64
qt5-qtwebkit-devel-5.7.0-2.fc25.x86_64
qt5-gstreamer-1.2.0-11.fc25.x86_64
qt5-qtdeclarative-5.7.0-2.fc25.x86_64
qt5-qtsensors-devel-5.7.0-2.fc25.x86_64
qt5-qttools-common-5.7.0-3.fc25.noarch
qt5-qtmultimedia-devel-5.7.0-2.fc25.x86_64
qt5-qtxmlpatterns-devel-5.7.0-2.fc25.x86_64
qt5-qt3d-devel-5.7.0-2.fc25.x86_64
I also develop with Qt Creator on Fedora 25, and it works for me.
Here is how I usually do it:
dnf install make gcc-c++ gdb
dnf install qt5*-devel
dnf install qt-creator
After this, I've got a working Qt Creator configuration on a fresh Fedora 25 (that I just installed from scratch yesterday).
To be honest, I'm not sure what you might have been doing wrong, but I have a few ideas:
Did you upgrade from a previous OS version or maybe copy the configuration of a previous Qt Creator version to your new installation?
Check that you have a compiler and build environment (make, gcc, ...) installed
If its configuration is corrupt, you could try deleting ~/.config/QtProject and Qt Creator might recognize your stuff.
Try to delete the *.pro.user file of your project if it may have been generated by a previous Qt Creator version
In any case, you can fix the configuration relatively easily.
Go to Tools -> Options
Select Build & Run
On the Compilers tab you should see your installed compiler in the auto-detected section. If you have a compiler installed but it isn't recognized, add it here manually.
On the Qt Versions tab, the version I installed from the Fedora repo (currently 5.7.0) appears in the Manual section (even though I didn't add it manually). You can add it by browsing to /usr/bin/qmake-qt5.
On the Kits tab, I have a single Manual entry called Desktop, which is basically set to use the compiler and Qt version mentioned above.
I got it:
qtcreator was not able to find my qmake installation, because in the fedora packages qmake is:
-rwxr-xr-x. 2 root root 2921520 19. Jul 14:51 /usr/bin/qmake-qt5
Adding a softlink to
lrwxrwxrwx. 1 root root 18 5. Dez 17:17 /usr/bin/qmake -> /usr/bin/qmake-qt5
did NOT help!
You have to point to the correct qmake via :
Build&Run -> Kits -> Manual -> Desktop -> Qt-Version -> Manage -> "Select qmake with file-browser"
Now it seems to find a qt version.
In "Details" the dialog prints "Qt version 5.7.0 for Desktop"
Why there is not a simple output: "Can not find qmake"?
OK, seems to be a bit special to fedora which install qmake to different file name.
Based on #SteeveDroz comment that worked for me on Fedora 29:
Remove the path to the shell script and select /us/bin/qmake-qt5.
Now it doesn't complain about the wrong version.
The "No valid kits found" error can be caused by many things (e.g. missing g++ compiler). Here's a video I just uploaded that shows a clean install of Qt 5.13 on a clean install of Fedora 30 KDE:
https://www.youtube.com/watch?v=DQKoNwg5afU
I am trying to run the example that can be found here using gstreamer 1.6.4 on my ARM based board (https://cgit.freedesktop.org/gstreamer/gst-plugins-bad/tree/tests/examples/qt/qml)
I have Qt 5.5.1 installed and I have built gstreamer 1.6.4 and all the relevant plugins but when I run the example, it cannot find the GLVideoItem component and comes back with:
qrc:/main.qml:7 module "org.freedesktop.gstreamer.GLVideoItem" is not installed
Now, my question is how can I check if this component is installed on my system?
Also, do I need to rebuild qt linking against the new installation of gstreamer to be able to use this component?
[EDIT]
I also noticed creating qmlglsink element as get_element_factory_make("qmlglsink", NULL) returns NULL.
From shell:
gst-inspect-1.0 qmlglsink
I would check the ldd on your app of which GStreamer is used (if you have some system GStreamer and compiled one).. then you will have to set proper paths to pick the proper one.
ldd ./your-app | grep -i gst
Notice the PKGCONFIG in your .pro file (in the tutorial you linked) - you may check what is pkg config thinking about that:
pkg-config --cflags --libs gstreamer-1.0 gstreamer-video-1.0
The error
When I run pip install PySide – whether in a virtual environment or not – build fails with the following error:
... [lots of build info, including a few warnings but no errors, for shiboken]
Linking CXX executable shiboken
ld: framework not found QtCore
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Seeing as I have QtCore installed and the framework present (see below), I'm not sure why that should be.
Setup info
Software versions
OS X 10.8.2
Qt 4.8.4 from the developer distributed binaries
Python 3.3 installed and working normally
XCode 4.6
Apple LLVM version 4.2 (clang-425.0.24) (based on LLVM 3.2svn)
Target: x86_64-apple-darwin12.2.1
Virtual environment generating using pyvenv (with and without --no-site-packages)
Other configurations attempted
Python 2.7 installed and working normally
Virtual environment generated using mkvirtualenv (with and without --no-site-packages)
virtualenv 1.8.4
mkvirtualenv 3.6
System configuration
I've confirmed that QtCore is in fact installed correctly: ls /Library/Frameworks shows a number of Frameworks, including QtCore.Framework.
My path currently includes both /Library/Frameworks/QtCore.framework and /Library/Frameworks/QtCore.Framework/Versions/4 – the former of which has a symbolic link to the component in the latter location. I've even tried it with /Library/Frameworks, though for obvious reasons I didn't expect that to help and it did not.
Other notes
I've tried the same thing with easy_install and by doing a pull from the Git repository and building manually using setup.py. As one would expect, they all return the same results.
Things I've already read
PyPi Installation walkthrough
Link error: QtCore.framework/Versions/4/QtCore for architecture x86_64 (Stack Overflow) – but it seems the linker is already asking for the framework, based on the error message I'm receiving.
Mac OS X: trying to link (ld) against a framework (Stack Overflow) – general info on linking against Frameworks; again, I seem to have this covered.
OSX deployment target confusion for 2.8.10 (CMake Mailing list) – looks like a very similar error, but I don't have direct control of the -isysroot flag using pip (or easy_install or even python setup.py) for one and for another, installation structure seems to have changed substantially between OS X 10.6 and 10.8. For example, /Developer no longer has the SDKs directory in it at all.
CMake bug report 0013765 – this one looks exactly the same, but appears to have been patched, so I'm not sure why it would still be causing me a problem.
Preferences
I'm not using a package manager like Homebrew or MacPorts at this time, and I'd prefer not to, either, as I need to get as close as possible to a platform-agnostic installation procedure for this (we're looking at doing cross-platform development; I'll ultimately be targeting Windows applications primarily, but need to see if it's workable on my Mac development machine outside a VM).
It needs to be able to work with a Python 3-style virtual environment (pyvenv) setup, as that's our preferred means of isolating our particular requirements.