hi to all and happy new year
today after some weeks, i try to recompile my programs on ubuntu 20.04.1 lts
before i git-pull harbour 3.2 and run make clean install, all works well
regenerate hwgui lib from source and libs correctly appear on lib directory
but i do not update hwgui lib from svn
i recompile with standard hbmk2 project.hbp
the project.hbp have -b flag
the compilation works
but when i run the executable i receive this :
./hwgdebug: error while loading shared libraries: libharbour.so.3.4: cannot open shared object file: No such file or directory
clearly i do not use harbour 3.4
so whats i'm doing wrong ?
if i try to recompile whithout -b flag all works
regards
domenico
Hello Domenico,
i tried to retrace the case on my Ubuntu 16.04 system, but i realized the
following:
With the -b option in logw.hbp the app does not start, it is running dead.
I used forever the code snapshot of Harbour and HWGUI.
But i prefer a static build of my app, i think it avoids errors for the
user.
I build the product in the regular order:
1.) Harbout 2.) HWGUI 3.) CLLOG
and i have no trouble.
My hbp file is here:
https://sourceforge.net/p/cllog/code/HEAD/tree/trunk/src/logw.hbp
Here some query output's of the userid running my app "CLLOG":
~/Harbour/core-master/lib/linux/gcc$ ls libharbour.*
libharbour.so libharbour.so.3.2 libharbour.so.3.2.0
cat ~/.profile
...
Eigene Erweiterungen
HARBOUR_INSTALL=$HOME/Harbour/core-master
PATH=$PATH:$HARBOUR_INSTALL/bin/linux/gcc
export PATH
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HARBOUR_INSTALL/lib/linux/gcc
export LD_LIBRARY_PATH
HAMLIB
PATH="$HOME/local/bin:${PATH}"
export PATH
==> the exported environment variable "LD_LIBRARY_PATH" is a search path setting
for libraries.
The command "ldd" displays all libraries loaded for program start
ldd ./logw
linux-vdso.so.1 => (0x00007ffc776a9000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f7009feb000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f7009de3000)
libgtk-x11-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 (0x00007f7009798000)
libgdk-x11-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0 (0x00007f70094e3000)
libpangocairo-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libpangocairo-1.0.so.0 (0x00007f70092d6000)
...
A trick could be, to set a symbolic link from an existing library to the requiered one:
~/Harbour/core-master/lib/linux/gcc$ ln -s libharbour.so.3.2 libharbour.so.3.4
ls -l libharbour.so*
lrwxrwxrwx 1 cltest cltest 19 Aug 8 11:31 libharbour.so -> libharbour.so.3.2.0
lrwxrwxrwx 1 cltest cltest 19 Aug 8 11:31 libharbour.so.3.2 -> libharbour.so.3.2.0
-rwxrwxr-x 1 cltest cltest 5624176 Aug 8 11:31 libharbour.so.3.2.0
lrwxrwxrwx 1 cltest cltest 17 Jan 4 10:46 libharbour.so.3.4 -> libharbour.so.3.2
I hope, this helps you.
A happy new year,
with regards,
MNI TNX, 73 es 55 de
DF7BE, Wilfried