libmodbus: как скомпилировать приложение, включая библиотеку libmodbus?

У меня проблема с компиляцией моего приложения, которое основано на libmodbusбиблиотека: https://github.com/stephane/libmodbus

Я попытался скомпилировать его с помощью этой команды:cc pkg-config --cflags --libs libmodbus modbus.c -o modbus

Но получаю следующие ошибки:

/usr/bin/ld: /tmp/cckdtbWy.o: in function `main':
modbus.c:(.text+0x1b): undefined reference to `modbus_new_tcp_pi'
/usr/bin/ld: modbus.c:(.text+0x5c): undefined reference to `modbus_connect'
/usr/bin/ld: modbus.c:(.text+0x8d): undefined reference to `modbus_free'
/usr/bin/ld: modbus.c:(.text+0xa3): undefined reference to `modbus_connect'
/usr/bin/ld: modbus.c:(.text+0xde): undefined reference to `modbus_read_bits'
/usr/bin/ld: modbus.c:(.text+0x11e): undefined reference to `modbus_close'
/usr/bin/ld: modbus.c:(.text+0x12a): undefined reference to `modbus_free'
collect2: error: ld returned 1 exit status

Буду признателен за любую помощь!

С уважением!

2 ответа

Решение

Я справился с этой проблемой, и мое решение таково:

1. Создайтеmodbus.conf файл в /etc/ld.so.conf.d/.

2. Бегиsudo ldconfig.

3. Скомпилируйте ваше приложение / программу с помощью следующей команды:

gcc <name>.c -o <name> -I/usr/local/include/modbus/ -lmodbus

У меня это сработало, но я не уверен, нужен ли первый шаг.

Вы установили libmodbus-dev? Вы должны попробовать это:sudo apt-get install -ylibmodbus-dev.

См. V3.1.6 и v3.0.8: документация libmodbus

Другие вопросы по тегам