- Posts: 46
- Thank you received: 0
×
CodeTyphon MacOS Development, discussions and problems
Question Qt4Pas in bundle
- Premysl Beran
- Topic Author
- Offline
- Junior Member
-
Less
More
3 years 5 months ago #13222
by Premysl Beran
Qt4Pas in bundle was created by Premysl Beran
Hi all,
I started to use successfully the CT on Mac. I compiled my code developed under Windows and it works. So thanks for the very nice job. But I'm still a newcomer on the MacOS platform.
My colleague asked me if I can provide him with my MacOS version of my application. When I did he was not able to launch the app. The error was the following:
So I tried to copy the Qt4Pas.framework directory to the bundle. But it was not sufficient because it probably needs some linking, especially to the bundle framework. Can anybody help me how to do that or how to deal with it?
Thanks for any comment.
With best regards
Premek
I started to use successfully the CT on Mac. I compiled my code developed under Windows and it works. So thanks for the very nice job. But I'm still a newcomer on the MacOS platform.
My colleague asked me if I can provide him with my MacOS version of my application. When I did he was not able to launch the app. The error was the following:
Application Specific Information:
dyld: launch, loading dependent libraries
Dyld Error Message:
Library not loaded: /opt/local/libexec/*/Qt4Pas.framework/Versions/5/Qt4Pas
Referenced from: /private/var/folders/*/MyAppName.app/Contents/MacOS/MyAppName
Reason: image not found
So I tried to copy the Qt4Pas.framework directory to the bundle. But it was not sufficient because it probably needs some linking, especially to the bundle framework. Can anybody help me how to do that or how to deal with it?
Thanks for any comment.
With best regards
Premek
Please Log in or Create an account to join the conversation.
- Matis A.
-
- Offline
- Moderator
-
3 years 5 months ago - 3 years 5 months ago #13225
by Matis A.
PilotLogic Core Programmer
Replied by Matis A. on topic Qt4Pas in bundle
Sir
you can find the Qt4Pas.framework installation procedure to
codetyphon/ScriptsLin/ln_Typhon1_QT4pas_Make_Links.sh
In 7zip file
codetyphon/allzips/binqt/qt4-x86_64-darwin.7z
you can find Qt4Pas.framework that CT use.
you can find the Qt4Pas.framework installation procedure to
codetyphon/ScriptsLin/ln_Typhon1_QT4pas_Make_Links.sh
# --- Remove MacPorts Qt4Pas Version -----
if [ -d /opt/local/libexec/qt4/lib/Qt4Pas.framework ] ;
then
sudo rm -fr /opt/local/libexec/qt4/lib/Qt4Pas.framework
echo "[INFO] REMOVE MacPorts Qt4Pas Version from /opt/local/libexec/qt4/lib/Qt4Pas.framework"
fi
# --- Remove OLD CT Qt4Pas Version -----
if [ -d /Library/Frameworks/Qt4Pas.framework ] ;
then
sudo rm -fr /Library/Frameworks/Qt4Pas.framework
fi
sudo cp -fr ${vCTDir}/qt4pas/${vCPUOS}/Qt4Pas.framework /Library/Frameworks/Qt4Pas.framework
sudo chmod -R 777 /Library/Frameworks/Qt4Pas.framework
# --- make internal links -----
sudo rm -f /Library/Frameworks/Qt4Pas
sudo chmod 777 /Library/Frameworks/Qt4Pas.framework/Versions/5/Qt4Pas
sudo ln -f -s /Library/Frameworks/Qt4Pas.framework/Versions/5/Qt4Pas /Library/Frameworks/Qt4Pas.framework/Qt4Pas
sudo chmod 777 /Library/Frameworks/Qt4Pas.framework/Qt4Pas
sudo chmod -R 777 /Library/Frameworks/Qt4Pas.framework
In 7zip file
codetyphon/allzips/binqt/qt4-x86_64-darwin.7z
you can find Qt4Pas.framework that CT use.
PilotLogic Core Programmer
Last edit: 3 years 5 months ago by Matis A..
Please Log in or Create an account to join the conversation.
- Premysl Beran
- Topic Author
- Offline
- Junior Member
-
Less
More
- Posts: 46
- Thank you received: 0
3 years 5 months ago #13227
by Premysl Beran
Replied by Premysl Beran on topic Qt4Pas in bundle
Hi Matis,
Thanks for the info. I know when you install the CT you install the system libraries. At that time the scrip you described is launched. And if I compile my application it is linked to the that library.
Now when I distribute my application, I need also distribute the library Qt4Pas which is different that MacPorts use (as visible in the script). The described script needs root access. This is what I don't want.
When you need to do it in Win or Linux you just copy the library in the same directory as executable. I thought that the structure of macOS bundle can be used here. I could copy the Qt4Pas to the bundle and tell the application to link to it and not to the one in the system.
So idea was to create application bundle which allow to lunch the application without necessity to install any further libraries.
Thanks for help.
Premek
Thanks for the info. I know when you install the CT you install the system libraries. At that time the scrip you described is launched. And if I compile my application it is linked to the that library.
Now when I distribute my application, I need also distribute the library Qt4Pas which is different that MacPorts use (as visible in the script). The described script needs root access. This is what I don't want.
When you need to do it in Win or Linux you just copy the library in the same directory as executable. I thought that the structure of macOS bundle can be used here. I could copy the Qt4Pas to the bundle and tell the application to link to it and not to the one in the system.
So idea was to create application bundle which allow to lunch the application without necessity to install any further libraries.
Thanks for help.
Premek
Please Log in or Create an account to join the conversation.
- Matis A.
-
- Offline
- Moderator
-
3 years 5 months ago - 3 years 5 months ago #13228
by Matis A.
PilotLogic Core Programmer
Replied by Matis A. on topic Qt4Pas in bundle
QT4 and QT5 by default need Qt4Pas and Qt5Pas libraries for ALL OSes.
Qt4Pas and Qt5Pas libraries are translations of QT C++ object API to Pascal.
MacPorts Qt4Pas and Qt5Pas versions have big problems, are Clang building with incorrect functions input types (latest MacOS 10.14.3).
The same problem exists with Qt4Pas and Qt5Pas libraries and on latest FreeBSD 12.0.
So if you want
<<.. to create application bundle which allow to lunch the application without necessity to install any further libraries.>>
you must select an other Platform.
On MacOS "Cocoa" it's the best choice as OS native platform. "Carbon" platform it's old.
On MacOS "GTK2" use only the libraries from MacPorts.
The Big Picture is that CodeTyphon on MacOS support all these platforms Cocoa, GTK2, QT4, QT5 and old Carbon
as Typhon IDE host platforms.
And we provide working and tested Qt4Pas and Qt5Pas versions out of the box.
The choice is yours
Qt4Pas and Qt5Pas libraries are translations of QT C++ object API to Pascal.
MacPorts Qt4Pas and Qt5Pas versions have big problems, are Clang building with incorrect functions input types (latest MacOS 10.14.3).
The same problem exists with Qt4Pas and Qt5Pas libraries and on latest FreeBSD 12.0.
So if you want
<<.. to create application bundle which allow to lunch the application without necessity to install any further libraries.>>
you must select an other Platform.
On MacOS "Cocoa" it's the best choice as OS native platform. "Carbon" platform it's old.
On MacOS "GTK2" use only the libraries from MacPorts.
The Big Picture is that CodeTyphon on MacOS support all these platforms Cocoa, GTK2, QT4, QT5 and old Carbon
as Typhon IDE host platforms.
And we provide working and tested Qt4Pas and Qt5Pas versions out of the box.
The choice is yours

PilotLogic Core Programmer
Last edit: 3 years 5 months ago by Matis A..
Please Log in or Create an account to join the conversation.