![]() |
|
Модераторы: xvr |
![]()
|
|
| Manaarina |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 4.5.2011 Репутация: нет Всего: нет |
Пишу учебную программку на C, которая является приложением типа клиент-сервер: на сервере перемножает полиномы, а на клиенте вводятся индексы и потом выводиться результат.
При компиляции gcc ругается на функцию Clnt_create и на функцию mltproc_1(эта функция которая создается rpcgen -ом). 1) Вопрос, что я не так делаю?(возможно не хватает заголовочных файлов или чего-нибудь ещё?) Udefined first symbol referenced Clnt_create client.o Udefined first symbol referenced mltproc_1 mlt_svc.o mlt.x
server.c
client.c
Это сообщение отредактировал(а) Manaarina - 20.1.2012, 10:57 |
||||||
|
|||||||
| Manaarina |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 4.5.2011 Репутация: нет Всего: нет |
Разобралась с клиентом(там функция clnt_create с большой у меня была =\)
Осталась проблема с сервером. |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 20 Всего: 223 |
Вы стабы, сгенеренные rpcgen'Ом не забыли включить в линковку?
|
|||
|
||||
| Manaarina |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 4.5.2011 Репутация: нет Всего: нет |
А мне незнакомы слова "стаб" или "линковка"
Если стабы - файлы сгенерированные rpcgen-ом все включаю. Но возможно это что то другое? =( |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 20 Всего: 223 |
||||
|
||||
| Manaarina |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 4.5.2011 Репутация: нет Всего: нет |
Увы, пропала на некоторое время, но всё еще надеюсь на ответ.
|
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 16 Всего: 196 |
Manaarina, у тебя в правилах не указано куда компилятор должен класть результат своей работы:
|
|||
|
||||
| Manaarina |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 4.5.2011 Репутация: нет Всего: нет |
bsa ну вообще то он у меня по умолчанию кладет их с такими же названиями но с расширениями .о в ту папку. короче объектные файлы появляются все.
PS На всякий случай я только что проверила, откомпилировав объектные вручную: все получились. при попытке скомпилировать клиент - запускается. при попытке скомпилировать сервер - та же ошибка. |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 20 Всего: 223 |
Ну makefile почти правильный
Показывайте исходники |
|||
|
||||
| Manaarina |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 4.5.2011 Репутация: нет Всего: нет |
не тот makefile недоправленный верно =) а какие исходники вы хотели бы посмотреть? |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 20 Всего: 223 |
||||
|
||||
| Manaarina |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 4.5.2011 Репутация: нет Всего: нет |
Сгенерированные файлы:
mlt_clnt.c
mlt_svc.c - в этом файле она тоже должна быть, но ее нет.
mlt_xdr.c
Прочие файлы выше. |
||||||
|
|||||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 20 Всего: 223 |
У вас файл mlt_svc.c обрезан
Судя по всему в вашем сервере ваша процедура должна называться mltproc_l (а не mltproc_l_svc как у вас, см server.c строка 8) Она не должна там быть - она должна быть у вас, а этот файл ее будет вызывать |
|||
|
||||
| Manaarina |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 4.5.2011 Репутация: нет Всего: нет |
так хорошо посмотрела сервер - исправила(запомнила если что), но ругается то он по прежнему, на mlt_proc_1 в файле mlt_svc.о. Ругается, опять же насколько я понимаю на то что функция не объявлена(?) - где-то должно быть это объявление(самой функции). Кстати наверно я получается не все показала: вот mlt.h - 25 строка - это объявление? так? mlt.h ко всем этим файлам присоединен(прям там первым файлом), он также сгенерирован rpcgen.
|
||||
|
|||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 20 Всего: 223 |
Это прототип, а реализованна эта функция должна быть в каком то из ваших файлов. Т.е. ее должны написать вы сами (для сервера) Так все же mlt_proc_1 или mlt_proc1 или mltproc_1 ? Это сообщение отредактировал(а) xvr - 20.1.2012, 12:24 |
|||
|
||||
![]()
|
| Правила форума "С/С++: Программирование под Unix/Linux" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |