Устранение ошибки загрузчика компоновщика на машине разработки Ubuntu с неопределенной ссылкой - PullRequest
0 голосов
/ 08 июня 2018

Требуется настройка системы, локальная машина Ubuntu и сервер Ubuntu Jenkins.Проект построен на локальной машине разработки, но при сборке на Jenkins я получаю следующую ошибку:

g++ -std=gnu++11 -fPIC -o app_bboxd comm_modbus.o bboxes.o -L../lib -lmodbus -lpthread -lrt
comm_modbus.o: In function `COMM_MODBUS__OpenRtu':
/var/lib/jenkins/workspace/cutom-build/trunk/comm_modbus.c:273: undefined reference to `modbus_rtu_set_rts'
collect2: error: ld returned 1 exit status
make[1]: *** [app_bboxd] Error 1

По какой-то причине компоновщик не может найти функцию.Когда я использую несколько встроенных команд, я вижу, что библиотека и функция существуют:

tes@ubuntu:~/workspace/trunk$ grep -rn -i "modbus_rtu_set_rts" /usr/local/include/modbus
/usr/local/include/modbus/modbus-rtu.h:44:MODBUS_API int modbus_rtu_set_rts(modbus_t *ctx, int mode);

test@ubuntu:~/workspace/trunk$ ls -l /usr/local/lib | grep libmodbus
-rwxr-xr-x 1 root root      919 Jun  8 08:46 libmodbus.la
lrwxrwxrwx 1 root root       18 Jun  8 08:46 libmodbus.so -> libmodbus.so.5.1.0
lrwxrwxrwx 1 root root       18 Jun  8 08:46 libmodbus.so.5 -> libmodbus.so.5.1.0
-rwxr-xr-x 1 root root   121972 Jun  8 08:46 libmodbus.so.5.1.0
test@ubuntu:~/workspace/trunk$

test@ubuntu:~/workspace/trunk$ nm /usr/local/lib/libmodbus.so.5.1.0 | grep modbus_rtu_set_rts
00005a70 T modbus_rtu_set_rts
test@ubuntu:~/workspace/trunk$

В чем может быть проблема?Как мне выяснить, почему он не может найти эту функцию в общем объекте?

...