Solved

Distribute Kylix applications

Posted on 2001-08-21
9
322 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
Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

 
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
 
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

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Question has a verified solution.

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

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…
Creating an auto free TStringList The TStringList is a basic and frequently used object in Delphi. On many occasions, you may want to create a temporary list, process some items in the list and be done with the list. In such cases, you have to…
Microsoft Active Directory, the widely used IT infrastructure, is known for its high risk of credential theft. The best way to test your Active Directory’s vulnerabilities to pass-the-ticket, pass-the-hash, privilege escalation, and malware attacks …
Although Jacob Bernoulli (1654-1705) has been credited as the creator of "Binomial Distribution Table", Gottfried Leibniz (1646-1716) did his dissertation on the subject in 1666; Leibniz you may recall is the co-inventor of "Calculus" and beat Isaac…

839 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