Re: Why is this library not found?

Robert Boehne <[email protected]>
Newsgroups gmane.comp.gnu.libtool.general
Message-ID <CAADOFPG+tZPhspVeD0WGAZKaV7mSK=zdUschh1tC6nsZO1DN_g@mail.gmail.com>
I'd guess that the 2nd file not found error is a library that gneural
depends on.

Also, you may want to build your library with -module, as that seems
consistent with your use case.

Hth,

Robert
On May 1, 2016 5:11 PM, "Aljosha Papsch" <[email protected]> wrote:

On 01.05.2016 21:00, Mike Frysinger wrote:

> On 01 May 2016 09:18, Robert Boehne wrote:
>
>> Run it under gdb and see why it doesn't find the library.
>>
> or use strace -- that'll show quickly all the files/paths that the
> program is trying to use
> -mike
>
thanks, I underestimated strace until now. I executed following commands:

* Library name "gneural" and command LD_LIBRARY_PATH=/opt/gneural/lib
strace ./dlopen

access("/opt/gneural/lib/gneural", R_OK) = -1 ENOENT (No such file or
directory)
access("/usr/lib/gneural", R_OK)        = -1 ENOENT (No such file or
directory)
access("/usr/lib32/gneural", R_OK)      = -1 ENOENT (No such file or
directory)
open("/opt/gneural/lib/gneural", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such
file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=259355, ...}) = 0
mmap(NULL, 259355, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fc386998000
close(3)                                = 0
open("/usr/lib/tls/x86_64/gneural", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No
such file or directory)
[...]
open("/usr/lib/gneural", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or
directory)
stat("/usr/lib", {st_mode=S_IFDIR|0755, st_size=169152, ...}) = 0
munmap(0x7fc386998000, 259355)          = 0
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 2), ...}) = 0
write(1, "file not found\n", 15file not found
)        = 15
exit_group(0)                           = ?
+++ exited with 0 +++

* Name "gneural" and command LD_LIBRARY_PATH= strace ./dlopen

It doesn't even look in /opt/gneural/lib, even though directory is in
/etc/ld.so.conf.d file.

* Name "libgneural.so" and command LD_LIBRARY_PATH=/opt/gneural/lib strace
./dlopen

I tried this name because strace shows that it uses the name verbatim
without some magic.

open("/opt/gneural/lib/libgneural.so", O_RDONLY|O_CLOEXEC) = 3
read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0000\30\0\0\0\0\0\0"..., 832)
= 832
fstat(3, {st_mode=S_IFREG|0755, st_size=125152, ...}) = 0
mmap(NULL, 2132376, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =
0x7f55cfd54000
mprotect(0x7f55cfd5d000, 2093056, PROT_NONE) = 0
mmap(0x7f55cff5c000, 4096, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x8000) = 0x7f55cff5c000
close(3)                                = 0
munmap(0x7f55d08ef000, 259355)          = 0
munmap(0x7f55cfd54000, 2132376)         = 0
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 2), ...}) = 0
write(1, "file not found\n", 15file not found
)        = 15
exit_group(0)                           = ?
+++ exited with 0 +++

It opens the library but still reports that file is not found. Do you know
why? Also, despite Roberts remark about removing lib prefix, I had to
specify full name. Why is that?

Best regards

_______________________________________________
https://lists.gnu.org/mailman/listinfo/libtool
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.