Problems with MAC (string.h: No such file or directory) [solved]
-
On the Mac a good alternative to using the Qt downloads from qt-project.org is to use the Brew package manager.
Follow these instructions to install brew http://mxcl.github.com/homebrew/
Then use it to install QT, brew install qt will install Qt4 and brew install qt5 will install Qt5.
The nice part about using brew is that you can actually have multiple versions of Qt installed and switch between them. brew switch qt <version>
I've also found that sometimes I had to run macdeployqt with sudo.
-
I gonna write step by step the instructions I use, in case I am confusing myself:
For example, to link the libraries to QtNetwork.
First of all I copy all the libraries that I need (There are in /Libraries/Frameworks) in example.app/Contents/Frameworks/...
* *otool -L example.app/Contents/Frameworks/QtNetwork.framework/Versions/4.0/QtNetwork* example.app/Contents/Frameworks/QtNetwork.framework/Versions/4.0/QtNetwork: @executable_path/../Frameworks/QtNetwork.framework/Versions/4.0/QtNetwork (compatibility version 4.8.0, current version 4.8.4) QtCore.framework/Versions/4/QtCore (compatibility version 4.8.0, current version 4.8.4) /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.3) ....... **install_name_tool -id @executable_path/../Frameworks/QtCore.framework/Versions/4.0/QtCore plugandpaint.app/Contents/Frameworks/QtCore.framework/Versions/4.0/QtCore* **install_name_tool -change /Library/Frameworks/QtCore.framework/Versions/4.0/QtCore @executable_path/../Frameworks/QtCore.framework/Versions/4.0/QtCore example.app/Contents/Frameworks/QtNetwork.framework/Versions/4.0/QtNetwork* * *otool -L example.app/Contents/Frameworks/QtNetwork.framework/Versions/4.0/QtNetwork* example.app/Contents/Frameworks/QtNetwork.framework/Versions/4.0/QtNetwork: @executable_path/../Frameworks/QtNetwork.framework/Versions/4.0/QtNetwork (compatibility version 4.8.0, current version 4.8.4) QtCore.framework/Versions/4/QtCore (compatibility version 4.8.0, current version 4.8.4) /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.3) .......
Any idea???
-
I did it!!!
The problem was when I used the instruction install_name_tool -change.
In the manual puts that you should put where is the old library, the new library and the program that needs it.
But my program didn't recognise where is the old library, then the instruction doesn't work.
So at the end I used:
@install_name_tool -change (new library) (program)@
Thank you very much to all, muchas gracias a todos...
-
You're welcome !
Don't forget to update the thread's title so other forum users may know you found a solution
-
Hi,
I continue with the developmnent of this application.
Now, I have a new problem.
I have to copy the Plugins into my bunddle and link with its necessaries libraries. As I have the original bunddle, I copy the plugins there were in the old package.
This plugins (and frameworks) doesn't work because the libraries with which I compile were a later version.
My problem is when I gonna copy the plugin /qmltooling/libtcpserver.dylib, there aren't in my /Developer/Aplications/Qt/plugins/qmltooling
And similarly with libqsqlmysql.dylib
What I have to do?
-
To make sure I understood you right: you have built your own Qt ?
-
Then you have to look for the plugins in your Qt installation path.
Custom Qt
Qt 4:/usr/local/Trolltech/Qt-4.8.4
Qt 5:/usr/local/Qt-5.0.2With MacPorts : somewhere in /opt/local but I can't remember right now precisely where (they might be following Qt's default)
-
Do a global search for the files you need, if they are missing, it means that you didn't build everything.
-
Wait wait wait, I think, we are getting lost.
Remind me what exactly is your problem ? Did you already do a full rebuild of your application ?
-
Ok, sorry my english is not very good...
When I compiled the application, it didn't work because needs some plugins and frameworks.
Then I began to link all the plugins and frameworks that my program needs.
At first no problem,
- I created the plugin and framework folder in the bundle.
- I copied plugins or frameworks from my internal files to the bundle.
- I changed the source of the frameworks to the executable_path (install_name_tool ....)
But my problem come when I need /qmltooling/libtcpserver.dylib, because it isn't in my folder (/Developer/Aplications/Qt/)
Thanks!!!
-
Did you run macdeployqt ?
-
-
So it's working now ?