Требуется настройка системы, локальная машина 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$
В чем может быть проблема?Как мне выяснить, почему он не может найти эту функцию в общем объекте?