libdislin.so.10 not found during execution

444 views
Skip to first unread message

emg

unread,
Jun 10, 2013, 5:59:27 AM6/10/13
to dislin...@googlegroups.com
I compiled my program for 32bit Linux and copied it to a remote 32bit Linux computer. When I started the program at the remote computer over ssh, the following error message appeared:

> ./myprogram
myprogram: error while loading shared libraries: libdislin.so.10: cannot open shared object file: No such file or directory

Makefile contains the following link command:

gfortran -I/usr/local/dislin/gf -o myprogram myprogram.o mysubprogram.o -L/usr/local/dislin -ldislin -lGL -lXm -lXt -lX11

Is something missing? The program needs to be completely standalone, so that it can be made available as an executable for downloading over the internet.

Helmut Michels

unread,
Jun 10, 2013, 6:56:02 AM6/10/13
to dislin...@googlegroups.com
Hi,

you can try to link with the static library of Dislin instead of the shareable library:

 gfortran -I/usr/local/dislin/gf -o myprogram myprogram.o mysubprogram.o /usr/local/dislin/libdislin.a  -lGL -lXm -lXt -lX11

Otherwise, you have to copy libdislin.so.10 together with your executable to the other machine and to make sure
that the directory of libdislin.so.10 is in the LD_LIBRARY_PATH environment. libdislin.so is just a link to the library
dislin-10.3.so. You can rename this library to libdislin.so.10 and distribute it with your program.

Best regards,

Helmut

emg

unread,
Jun 10, 2013, 7:16:05 AM6/10/13
to dislin...@googlegroups.com
Hallo Helmut,

Here's an update on my efforts: After reading another thread (sorry for opening a new one), I linked my program with

gfortran -I/usr/local/dislin/gf -o myprogram myprogram.o /usr/local/dislin/libdislin.a -lXm -lXt -lX11 -lGL -s

and scp-ed it to the remote Linux computer. There, execution started, after which many warnings of the following kind appear:

Warning: translation table syntax error: Unknown keysym name:  osfActivate
Warning: ... found while parsing ':<Key>osfActivate:            ManagerParentActivate()'
Warning: String to TranslationTable conversion encountered errors
Warning: translation table syntax error: Unknown keysym name:  osfBeginLine
Warning: ... found while parsing ':<Key>osfBeginLine:           ManagerGadgetTraverseHome()'
Warning: String to TranslationTable conversion encountered errors
etc.

The interactive input window initialized by WGINI opens in spite of these messages, and alternative options of GWGBOX are selectable.Unfortunately, text input through GWGTXT isn't accepted. Execution continues with the default values for these text variables and completes successfully. I'd be very grateful for help.

Greetings, Liz G.




Am Montag, 10. Juni 2013 11:59:27 UTC+2 schrieb emg:

Helmut Michels

unread,
Jun 10, 2013, 7:41:02 AM6/10/13
to dislin...@googlegroups.com
Hello Liz,


Am Montag, 10. Juni 2013 13:16:05 UTC+2 schrieb emg:
Hallo Helmut,

Here's an update on my efforts: After reading another thread (sorry for opening a new one), I linked my program with

gfortran -I/usr/local/dislin/gf -o myprogram myprogram.o /usr/local/dislin/libdislin.a -lXm -lXt -lX11 -lGL -s

and scp-ed it to the remote Linux computer. There, execution started, after which many warnings of the following kind appear:

Warning: translation table syntax error: Unknown keysym name:  osfActivate
Warning: ... found while parsing ':<Key>osfActivate:            ManagerParentActivate()'
Warning: String to TranslationTable conversion encountered errors
Warning: translation table syntax error: Unknown keysym name:  osfBeginLine
Warning: ... found while parsing ':<Key>osfBeginLine:           ManagerGadgetTraverseHome()'
Warning: String to TranslationTable conversion encountered errors
etc.

The interactive input window initialized by WGINI opens in spite of these messages, and alternative options of GWGBOX are selectable.Unfortunately, text input through GWGTXT isn't accepted. Execution continues with the default values for these text variables and completes successfully. I'd be very grateful for help.

it looks like that the OpenMotif libs (-lXm) are not compatible on both machines. Perhaps, there is just lesstif installed
on the other machine. Which operating systems and OpenMotif versions do the both systems have?
The only solution seems to be to link with the static library of OpenMotif (libXm.a instead of libXm.so).

Best regards,

Helmut

 

Elizabeth Gillet

unread,
Jun 10, 2013, 8:01:04 AM6/10/13
to dislin...@googlegroups.com
Hallo Helmut,

Ja, ich bins. Danke für die persönliche Antwort!

Mein Institutsrechner läuft unter opensuse12.2. mit open motif 2.3.3-2.4.1. Der remote-Rechner ist gwdu05 mit opensuse???. Leider finde ich auf meinem Rechner keine static library libXm.a zum Einbinden. Wie komme ich dran?

Herzliche Grüße,
Liz
--
You received this message because you are subscribed to the Google Groups "dislin-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dislin-users...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Helmut Michels

unread,
Jun 11, 2013, 6:51:30 AM6/11/13
to dislin...@googlegroups.com
Hi Liz,


Am Montag, 10. Juni 2013 13:16:05 UTC+2 schrieb emg:
Hallo Helmut,

Here's an update on my efforts: After reading another thread (sorry for opening a new one), I linked my program with

gfortran -I/usr/local/dislin/gf -o myprogram myprogram.o /usr/local/dislin/libdislin.a -lXm -lXt -lX11 -lGL -s

and scp-ed it to the remote Linux computer. There, execution started, after which many warnings of the following kind appear:

Warning: translation table syntax error: Unknown keysym name:  osfActivate
Warning: ... found while parsing ':<Key>osfActivate:            ManagerParentActivate()'
Warning: String to TranslationTable conversion encountered errors
Warning: translation table syntax error: Unknown keysym name:  osfBeginLine
Warning: ... found while parsing ':<Key>osfBeginLine:           ManagerGadgetTraverseHome()'
Warning: String to TranslationTable conversion encountered errors
etc. ....

The warnings above can appear when a Dislin program using widgets is executed on a recent
or older Linux system as the one it was created on. The reason is that the location of the file
XKeysymDB used by the widgets can be different on Linux systems. A workaround is to define
the environment variable XKEYSYMDB with the location of the XKeysymDB file.
For example: export XKEYSYMDB=/usr/share/X11/XKeysymDB
The location of the file XKeysymDB can be checked with the statement 'locate XKeysymDB'.

Best regards,

Helmut
   
Reply all
Reply to author
Forward
0 new messages