2012-06-28 2 views
0

У меня есть rpcgen сгенерированный файл 'api_svc1.c' Файл содержит следующую строку:Не определено Ссылка на ''

local = (char *(*)(char *, struct svc_req *)) createacct_5_svc; 

'createacct_5_sv' объявлена ​​в '' api.h как

createAcctResult * createacct_5_svc(); 

Но даже после того, как includeing заголовочный файл 'api.h', я получаю следующее сообщение об ошибке:

api_svc1.c:90: undefined reference to `createacct_5_svc' 

ПБЯ предложения?

ответ

1

Я подозреваю, что у вас есть «api.h», тогда у вас также есть «api.c», и в этом случае у вас есть ссылка ваш файл api.c на ap_svc1.c. Обратите внимание, что ошибка не является ошибкой компилятора, жалующейся на отсутствующий заголовок; это линкер ошибка, связанная с отсутствием символа (неразрешимого) после компиляции объектного кода на этапе связывания.

+0

Привет, H2CO3, у нас нет api.c здесь. Утилита rpcgen создает файл-заглушку api-сервера, файл-заглушку api-клиента и заголовок api (api.h). – Blackforest

+1

У вас должен быть .c файл, в котором у вас есть функция. Вы можете использовать 'grep' utiliy для поиска его имени в файлах .c, а затем использовать свой компилятор для его ссылки. –

+0

то где реализация этой функции? api.h содержит только прототип, реализация должна быть где-то в файле .c, обычно api.c. если у вас его нет, то вы не сможете ссылаться на эту функцию. – LeleDumbo

Смежные вопросы