I am developing a C++ application on Mac OS X 10.8 with Xcode/Qt 4.8.4. I would like it to run on Mac OS X 10.6 and higher. In order to do that I set Xcode deployment target to 10.6, also I use macdeployqt. It works fine on Mac OS X 10.8, but on 10.6 there are lots and lots of issues.
The application crashes because of missing frameworks which are located in different places on 10.6 and 10.8:
Dyld Error Message: Library not loaded:
/System/Library/Frameworks/CoreText.framework/Versions/A/CoreText
Referenced from:
/Volumes/deploy/MyApp.app/Contents/MacOS/../Frameworks/QtGui.framework/Versions/4/QtGui
Library not loaded:
/System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO
Referenced from:
/Applications/MyApp.app/Contents/MacOS/../Frameworks/QtGui.framework/Versions/4/QtGui
...Similar QtWebKit, QtNetwork issues etc etc...
And there are trickier issues are about missing symbols in some system libraries, like libobjc.A.dylib, libSystem.B.dylib, libc++abi.dylib, libc++.1.dylib etc:
Dyld Error Message: Symbol not found:
__dispatch_queue_attr_concurrent Referenced from: /tmp/MyApp.app/Contents/MacOS/../Frameworks/libobjc.A.dylib Expected
in: /usr/lib/libSystem.B.dylib in
/tmp/MyApp.app/Contents/MacOS/../Frameworks/libobjc.A.dylib
Could somebody explain how to fix this? Is it possible at all to target Mac OS X 10.6 when using Qt 4.8.4? Perhaps, Qt 4.8.4 is not fully compatible with 10.6? I have tried to set QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.6 in the .pro file, I am using macdeployqt just passing MyApp.app as the only argument. Any help is appreciated.
In my experience, you are far better off just installing 10.6 on a partition and doing you builds there. I've been building on Mac OS 10.6 against Qt 4.8.4 and using macdeployqt, my application happily works on 10.5 through to 10.8 with no problems
Related
Worldwind is giving an error about missing dependencies. The executable works on 8/10 computers (intel) all with the same software & versions (Windows 7 w/ Jre8), same graphics cards/drivers (recently new).
On the computers where Worldwind doesn't work, the error was UnsatisfiedLinkError -"gluegen-rt.dll: Can't load AMD 64-bit .dd on a IA 32-bit platform"
To fix this, I downloaded the JOGL dll files for Intel i856, removed the AMD files and the program gives me this error [1]: https://i.stack.imgur.com/mRYRU.png
Any suggestions/comments are greatly appreciated.
Turns out using the jogamp-fat.jar the computer was looking at the 32-bit version of java. Once I installed Java 64-bit version and changed the JAVA_HOME it worked. Thanks!
This is my first attempt at making a Qt Application work on different systems.
I have opted for static linking method.I have already compiled the sources of Qt 5.5 and compiled my application with the static Qt. The executable is working fine on my computer.
My operating system is Ubuntu 15.04. But when I tried to run the same executable on Ubuntu 14.04 then I ran into trouble. The key details of the error message are given below.
libstdc++.so.6 cxxabi_1.3.8 not found
I did a standard Google search and realised it was because I had a newer version of it on my machine, the machine where I had created the executable. There were so many different approaches to handle this problem. One of the solutions I saw involved shipping your own copy of libstdc++.so with the executable. But when I tried to copy the .so file to a pen drive, there was a warning saying that the file system does not support such files.
My question is , what am I doing wrong ? Also if I wanted to make the executable target Ubuntu 10.04, what would be the correct procedure handling the backward compatibility issues. I know that one method would be to install the same OS on my machine and then create the executable , is there any other way?
libstd++ is backward compatible but not forward compatible, which means you can run a program with a newer version of libstdc++ than the one you compiled it with but not vice-versa. This is what you experienced.
One way to deal with this issue is using older OS versions as the build machine. When you for example use Ubuntu 14.04 LTS, you'll get this list of compatible target systems.
The build system you're using will probably limit available compilers. On Ubuntu 14.04 you get GCC 4.8, which is good for most C++11 and packages for clang 3.6 are available, which will give you full C++14 support.
Targeting Ubuntu 10.04 will be challenging if you do not want to use a stone age compiler.
The idea of shipping libstdc++ will not help you much because you'll run into the same problem with libc.
i am new to Qt.
i am using Wnndows 8 with MinGW (gcc 4.7.2)
i have installed QtLibrary 4.8.4(the official site says Qt 4.84 should work with mingw 4.4)
After modified Windows environment variables, i installed Qt Creator 2.6 and setted the kit as well.
now i can compile the example program, but cannot run it, the error message I got is
Starting D:\usr\bin\Qt4\examples\opengl\2dpainting-build-Kit_3_14-Debug\debug\2dpainting.exe...
The program has unexpectedly finished.
D:\usr\bin\Qt4\examples\opengl\2dpainting-build-Kit_3_14-Debug\debug\2dpainting.exe exited with code -1073741502
i met the same problem with Qt 5.0.1 + MinGw 4.7.2 too.
i guess there is something wrong with "opengl", but don't know how to fix it.
please help.
Please try to place all required dlls into the directory where your exe is (see here).
Also make shure; if you are compilung in Debug you need eg. QtCored4.dll, but in release QtCore4.dll.
It all about x32 and x64 architectures,
If you compile cpp files in x64 mode and then link them with x32 qt the problem will occur.
try using the appropriate versions of windows and qt(both x32 or both x64)
I have a project in qt-creator.
that computer have Qt: 4.8.2
one of the computers i want to run the application on have Qt: 4.6.2
I can see that qt-creator have an option under the project for QtVersions,
but i only got one option there "Qt 4.8.1 (System)"
Id like to have Qt 4.6.x as an option there too, how do i add/install that?
Target computer:
kde4-config --version
Qt: 4.6.2
KDE Development Platform: 4.4.2 (KDE 4.4.2)
kde4-config: 1.0
uname -a
Linux fw-01 2.6.32-24-generic #41-Ubuntu SMP Thu Aug 19 01:12:52 UTC 2010 i686 GNU/Linux
Build computer:
kde4-config --version
Qt: 4.8.2
KDE Development Platform: 4.8.5 (4.8.5)
kde4-config: 1.0
uname -a
Linux rito 3.3.8-gentoo #3 SMP Thu Sep 13 10:11:22 CEST 2012 i686 AMD Athlon(tm) II X2 245 Processor AuthenticAMD GNU/Linux
As the SDK doesn't support the old versions anymore, you will have to compile the libraries from source. The archive FTP site has the version you want.
Though I should point out that as long as you are linking dynamically and your code base doesn't use features post-v4.6.2 - then it will work as expected. If you are, then compiling using v4.6.2 headers isn't going to change anything - you will still have to upgrade the other computer or remove the newer Qt features from your application.
My workaround,
installing kubuntu 10.04 in a vitrualbox
copy the project to the virtualbox
compile it using qt-creator inside virtualbox
The binary made in the virtualbox works fine in both 4.6 and 4.8 envirement
In Qt Creator, try tools -> options -> Qt Versions (or Build/run, then qt versions, or some other abomination depending on what qt creator version you have).
Should see a list of Qt versions it knows about. Click add to reference your 4.6 qmake manually. That should get creator to pick it up.
I installed the 32 bit Cocoa binary for mac on a G5, none of the Qt apps would run, so I uninstalled it, installed the Carbon binary, & none of those apps would run. What am I doing wrong? I get error messages saying the "application is not supported on this platform".
Mac 10.5.8
Xcode 3.1.2
Qt 4.7.3
1.8 GHz G5 with 2.5 GB RAM.
You want qt-mac-opensource-X.Y.Z.dmg (where X.Y.Z <= 4.6.4, as I understand it; newer versions can be built from source), not qt-mac-cocoa-opensource-X.Y.Z.dmg or qt-mac-cocoa-carbon-X.Y.Z.dmg.
(I believe 4.7 changed the default from carbon to cocoa, and that this is also when Trolltech/Nokia stopped building ppc/i386 universal – I have no clue why, and they don't seem to have made any official announcement of this.)
Anyway, you can grab it at ftp://ftp.qt.nokia.com/qt/source/qt-mac-opensource-4.6.4.dmg.