Le 31/10/2024 à 03:08, Kent Gibson a écrit :
On Wed, Oct 30, 2024 at 09:59:05PM +0100, Le Chaudron Nautique wrote:
Hello,
I have some trouble installing the release 2.2 of libgpiod (or rather in
linking it).
You mean "linking to it at runtime".
Right.
I want to use it on a RaspberryPi 4 (kernel 6.6.56-RT and 6.12-RT) which are
not provided by Raspberry but taken from https://git.kernel.org, thus the
problem might come from there.
No, as you can link a binary, your problem seems to be with your ld path or
library installation.
The default path should include /usr/local/lib, so that probably isn;t
the issue.
On my Pi4, the relevant config file for that is:
pi@pi4:~/libgpiod $ cat /etc/ld.so.conf.d/libc.conf
# libc default configuration
/usr/local/lib
Ok on my side.
I have taken the 2.2 tarball on
https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/
when I compile my file it seems ok (just trying with one of the examples
from git : chip-info.c), but when I run the program obtained I have this
error :
I assume you mean get_chip_info.c.
You're right, I spent to much time running through the different files...
./prog: error while loading shared libraries: libgpiod.so.3: cannot open
shared object file: No such file or directory
The path for ./autogen was /usr/local
gpiod.h is in /usr/local/include
Not relevant at runtime.
libgpiod.so.3 is in /usr/local/lib
And is it usually a symlink to the actual library.
What does "ls -l /usr/local/lib" show?
The same as yours (except for the exact sizes).
My programs are in ~/prog/userspace and the makefile uses -lgpiod.
Shouldn't matter. Try using ldd on your binary to see what libraries it
is linked against.
Am I missing and option or a path to be declared somewhere ?
It is difficult to determine the root cause of your problem without more
detail.
Here is what I get using that tarball and:
./autogen.sh --prefix=/usr/local --enable-examples
make
sudo make install
pi@pi4:~/libgpiod-2.2 $ ls -l /usr/local/lib
total 372
-rw-r--r-- 1 root root 239480 Oct 31 09:40 libgpiod.a
-rwxr-xr-x 1 root root 946 Oct 31 09:40 libgpiod.la
lrwxrwxrwx 1 root root 17 Oct 31 09:40 libgpiod.so -> libgpiod.so.3.1.1
lrwxrwxrwx 1 root root 17 Oct 31 09:40 libgpiod.so.3 -> libgpiod.so.3.1.1
-rwxr-xr-x 1 root root 155480 Oct 31 09:40 libgpiod.so.3.1.1
drwxr-xr-x 2 root root 4096 Oct 31 09:40 pkgconfig
drwxr-xr-x 4 root root 4096 Jan 13 2024 python3.11
pi@pi4:~/libgpiod-2.2 $ ldd examples/.libs/get_chip_info
linux-vdso.so.1 (0x0000007f9e276000)
libgpiod.so.3 => /usr/local/lib/libgpiod.so.3 (0x0000007f9e1e0000)
libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000007f9e030000)
/lib/ld-linux-aarch64.so.1 (0x0000007f9e239000)
pi@pi4:~/libgpiod-2.2 $ examples/get_chip_info
gpiochip0 [pinctrl-bcm2711] (58 lines)
What do you get?
I didn't add the --enable-examples, I took the code from git and put it
in my test file/directory.
vanvan@lcntest-stable:~/prog/userspace $ ldd prog
linux-vdso.so.1 (0x0000007fa851e000)
libgpiod.so.3 => not found
libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000007fa8300000)
/lib/ld-linux-aarch64.so.1 (0x0000007fa84e1000)
Should I look at/capture the autogen logs to see if something is amiss ?
Thanks,
Mathieu
Cheers,
Kent.
--