Использование API libgpiod (Linux разделяемые библиотеки) - PullRequest
0 голосов
/ 13 апреля 2020

У кого-нибудь есть опыт работы с libgpiod API? Я установил его на мою linux платформу, но не могу вызвать ее библиотечные функции.

Я установил:

git clone git://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git
cd libgpiod
./autogen.sh
make
make install

После этого я вижу libgpiod.so библиотека в / usr / local / lib / и gpiod.h в / usr / local / include / (для правильной меры я запустил ldconfig также). Однако, когда я пытаюсь скомпилировать следующее:

test. c

#include <gpiod.h>

struct gpio_chip *chip;    

int main(void)
{
    chip = gpio_chip_open("/dev/gpiochip4");
    return 0;
}

я получаю следующую ошибку: undefined reference to 'gpiod_chip_open'

Может ли кто-нибудь помочь мне увидеть, где я иду не так?

Большое спасибо заранее!

1 Ответ

1 голос
/ 13 апреля 2020

Вы пропустили библиотеку для связи с флагом -l.

Скомпилируйте ее так:

gcc -lgpiod test.c

Кроме того, вам может потребоваться настроить пути выполнения также для SO файл, если это пользовательский. См. Этот поток для получения дополнительной информации о расположении общих объектов во время выполнения.

...