Невозможно собрать проект RPC с помощью libtirpc - PullRequest
0 голосов
/ 29 мая 2018

У меня был рабочий проект на основе RPC.К сожалению, я был вынужден обновить glibc до 2.27-3.Это обновление очистило все заголовки rpc из / usr / include / rpc.Я обнаружил, что они устарели и теперь доступны в пакете libtirpc.Проблема в том, что я не знаю, как их использовать.Я попытался изменить мои включения с

#include <rpc/rpc.h>

на

#include <tirpc/rpc/rpc.h>

, но некоторые из заголовков rpc включают другие из / rpc, поэтому они также не смогли их найти.Затем я скопировал содержимое / usr / include / tirpc в / usr / include / rpc.Он двигался дальше, но мне все еще не удалось собрать проект из-за:

/ usr / bin / ld: status_svc.o: неопределенная ссылка на символ 'svcerr_noproc @@ TIRPC_0.3.0' / ​​usr /lib / libtirpc.so.3: ошибка при добавлении символов: DSO отсутствует в командной строке

collect2: ошибка: ld вернул 1 состояние выхода

Вот часть моего make-файла:

# Compiler flags 

CFLAGS += -g -pthread
LDLIBS += -lnsl
RPCGENFLAGS = 

1 Ответ

0 голосов
/ 29 мая 2018

Вы можете использовать -I/usr/include/tirpc в качестве флага компилятора (в CFLAGS), чтобы избежать необходимости исправления файлов.Очевидно, именно так заголовочные файлы предназначены для использования в вашем дистрибутиве.

Проблема компоновщика, которую вы должны избежать, связавшись с -ltirpc.

...