Solved

Distribute Kylix applications

Posted on 2001-08-21
9
320 Views
Last Modified: 2010-04-06
What is the libraries that I must distribute with my Kylix applications. I think that libraries is not installed automatically with Kylix OE. I tried to run the executable file from the command line, but it tells me that there is missing libraries.

I need a detailed answer and discussion.

Thanks
Motaz
0
Comment
Question by:Motaz
9 Comments
 
LVL 1

Expert Comment

by:rpo
ID: 6409181
Try to run this command :

source /root/kylix/bin/kylixpath

just replace the /root/kylix with the correct Kylix path on your machine.

This kylixpath script just adds some directories to the search path.

Roman.
0
 
LVL 3

Expert Comment

by:Slavak
ID: 6409381
listening
0
 
LVL 3

Expert Comment

by:karouri
ID: 6410343
I think the library missing is libqtintf.so . This library can be found in the kylix/bin directory. The lastest version can be found at the site http://sourceforge.net/projects/freeclx/
For your programs to work, the library must be in your library path. Two solutions I have tried:
1. Add the path of the library to the environment variable LD_LIBRARY_PATH. This is the approach that is executed by the command source /root/kylix/bin/kylixpath mentioned above. I put the file kylixpath in the subdirectory /etc/profile.d (in RedHat Linux 7.1, not sure about path in other distros) for it to work in the start for all accounts.
2. The library can be added permanantly to the system libraries by adding the path of it to the file /etc/ld.so.conf, or copying the library itself to one of the directories mentioned there. and then running the command ldconfig.

I usually make a directory /usr/lib/kylix , put the libqtintf.so.2.2.4.3 in it, create symbolic links in the same directory as libqtintf.so.2.2.4,libqtintf.so.2.2,libqtintf.so.2,libqtintf.so to it. Then add /usr/lib/kylix to /etc/ld.so.conf and run ldconfig.

By the way, libqtintf is the kylix interface to the Qt library. I think the process above can be scripted/programmed to be done once and tested for installation purposes. Much better, Borland can make a run-time rpm that installs it, or anybody.

k

0
 
LVL 7

Author Comment

by:Motaz
ID: 6424298
I tried this command:

source /home/azzoz/kylix/bin but it gives me "This is a directory"

I tried:

source /home/azzoz/kylix/bin/libqtintf.so  it gives me error "cann't execute binary file"

I copy the file to /etc/profile.d but no thing happen

Motaz
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 
LVL 3

Accepted Solution

by:
karouri earned 200 total points
ID: 6424880
Try to put these commands in the file .bashrc in your home directory and tell me the result:

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/azzoz/kylix/bin
export LD_LIBRARY_PATH

after these two commands the library should be in your LD_LIBRARY_PATH, i.e. in your link-loader library path;)
including these two commands in your .bashrc should solve the problem for your account only as .bashrc is executed after login.
To have a more general solution (for all users) I think it is enough to do these commands (as root):

cp /home/azzoz/kylix/bin/libqtintf.so.* /usr/lib
ln -s /usr/lib/libqtintf.so.* /usr/lib/libqtintf.so

This makes libqtintf.so part of the system libraries (so to speak) as the /usr/lib directory is already specified as one. The library will have the name libqtintf.so.2.2.4 or something similar, where the last number is the version. You need a (symbolic) link with the more generic libqtintf.so name.

Both methods are assuming that your libqtintf.so is in the subdirectory /homw/azzoz/kylix/bin, otherwise substitute your path..
k
0
 
LVL 7

Author Comment

by:Motaz
ID: 6425908
Thanks karouri very much, it works fine.
Last question: if I write small applications that use only OE components, no database engine, what libraries that I need to distribute with my applications.

Thanks,
Motaz
0
 
LVL 3

Expert Comment

by:karouri
ID: 6426094
If the application is console only, there are no libraries required. Using the CLX, you have to distribute the libqtintf.so library. It should be installed the same as the procedure above..
k
0
 
LVL 7

Author Comment

by:Motaz
ID: 6428072
Thanks Karouri
0
 

Expert Comment

by:encelad
ID: 7451655
Hello,
I read all of your comments about the questions Motaz is asking. All of your answers seem to be fine! Indeed, as meticulously described in the Kylix install documentation, there are certain packages, libraries and shared objects (.so files) that need to be added to the environment path of each user. When the PATH variable is correctly set such libraries like libqtintf.so can be loaded dynamically. This is all fine. However, there is a solution to the local machine! In fact, I would not call it a solution but a work-around. What happenes if you want to create a program that you want to give to other linux users and they do not have Kylix installed? Do they really ahve to install Kylix to get this libqtintf.so and then edit their PATH variable to get your app running! This makes no sense especially when it is comming from Borland. I think that there must be a way ehre you can compile all the packages that Kylix needs into the executable. So, once it is compiled it could be executed on any linux box without Kylix!
So far I have no managed to find a way to do this!
If anyone knows how to to this, please e-mail me at vasil_l@yahoo.com!

0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Objective: - This article will help user in how to convert their numeric value become words. How to use 1. You can copy this code in your Unit as function 2. than you can perform your function by type this code The Code   (CODE) The Im…
Hello everybody This Article will show you how to validate number with TEdit control, What's the TEdit control? TEdit is a standard Windows edit control on a form, it allows to user to write, read and copy/paste single line of text. Usua…
Migrating to Microsoft Office 365 is becoming increasingly popular for organizations both large and small. If you have made the leap to Microsoft’s cloud platform, you know that you will need to create a corporate email signature for your Office 365…
Video by: Mark
This lesson goes over how to construct ordered and unordered lists and how to create hyperlinks.

863 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

25 Experts available now in Live!

Get 1:1 Help Now