Hello,
I'm using Lahey Fortran compiler lf9561 on Linux.
I compile the program with the lahey automake feature... I can execute it on the same machine...
Now, I m trying to distribute my program : I mean, I want to run it on an other linux machine, which does not have the lahey compiler installed.
The error message is the following :
---
myProgram : error while loading shared libraries: libfj9i6.so.1: cannot open shared object file: No such file or directory
---
I ve tried to use the --staticlink option in the automake.fig file (line: 'LINK =' ), but I got the same error on the other machine.
Is there someone to help me and explain me how the static and shared libraries work?
How can I create libraries that I can distribute with the program? Do I have to rebuild my program and what does it mean?
Flav256
---
automake.fig :
LF95
INCLUDE = /usr/local/imsl/include/lf95:./INCLUDE
FILES = DIR1/*.f*
OBJDIR = OBJ_DIR1
MODULE = MODULES_DIR1
COMPILE = lf95 -O --prefetch2 --tpp -c %fi --mod ./MODULES_DIR1:./DIR2/MODULES:./MODULES --include %id -o %od%sf%oe
AND
FILES = DIR2/SRC/*.f90
OBJDIR = DIR2/OBJ
MODULE = DIR2/MODULES
COMPILE = lf95 -O --prefetch2 --tpp -c %fi --mod ./DIR2/MODULES:./MODULES:./MODULES_DIR1 --include %id -o %od%sf%oe
AND
FILES = SRC/*.f*
OBJDIR = OBJ
MODULE = MODULES
COMPILE = lf95 -O --prefetch2 -c --tpp %fi --mod ./MODULES:./MODULES_DIR1:./DIR2/MODULES --include %id -o %od%sf%oe
TARGET = BIN/hm4d
LINK = lf95 DIR2/OBJ/*.o ./OBJ_DIR1/*.o ./OBJ/*.o -o %ex --mod ./MODULES:./MODULES_DIR1:./DIR2/MODULES --include %id -L ./DIR2 -L ./DIR1 -L /usr/local/imsl/lib/lf95 -l sf90mp -l smaths -l smathd -l sstats -l sstatd -l fj9i6
I'm using Lahey Fortran compiler lf9561 on Linux.
I compile the program with the lahey automake feature... I can execute it on the same machine...
Now, I m trying to distribute my program : I mean, I want to run it on an other linux machine, which does not have the lahey compiler installed.
The error message is the following :
---
myProgram : error while loading shared libraries: libfj9i6.so.1: cannot open shared object file: No such file or directory
---
I ve tried to use the --staticlink option in the automake.fig file (line: 'LINK =' ), but I got the same error on the other machine.
Is there someone to help me and explain me how the static and shared libraries work?
How can I create libraries that I can distribute with the program? Do I have to rebuild my program and what does it mean?
Flav256
---
automake.fig :
LF95
INCLUDE = /usr/local/imsl/include/lf95:./INCLUDE
FILES = DIR1/*.f*
OBJDIR = OBJ_DIR1
MODULE = MODULES_DIR1
COMPILE = lf95 -O --prefetch2 --tpp -c %fi --mod ./MODULES_DIR1:./DIR2/MODULES:./MODULES --include %id -o %od%sf%oe
AND
FILES = DIR2/SRC/*.f90
OBJDIR = DIR2/OBJ
MODULE = DIR2/MODULES
COMPILE = lf95 -O --prefetch2 --tpp -c %fi --mod ./DIR2/MODULES:./MODULES:./MODULES_DIR1 --include %id -o %od%sf%oe
AND
FILES = SRC/*.f*
OBJDIR = OBJ
MODULE = MODULES
COMPILE = lf95 -O --prefetch2 -c --tpp %fi --mod ./MODULES:./MODULES_DIR1:./DIR2/MODULES --include %id -o %od%sf%oe
TARGET = BIN/hm4d
LINK = lf95 DIR2/OBJ/*.o ./OBJ_DIR1/*.o ./OBJ/*.o -o %ex --mod ./MODULES:./MODULES_DIR1:./DIR2/MODULES --include %id -L ./DIR2 -L ./DIR1 -L /usr/local/imsl/lib/lf95 -l sf90mp -l smaths -l smathd -l sstats -l sstatd -l fj9i6