Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: ошибка при компиляции программки на си  (Прочитано 829 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн santore

  • Автор темы
  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
компилятор выдает ошибку
d630@d630:~$ gcc -o hh hh.c
/tmp/ccEtOapq.o: In function `rdACKadap.3564':
hh.c:(.text+0xa7d): undefined reference to `rdport'
collect2: error: ld returned 1 exit status
d630@d630:~$
вот кусок программы
#include <stdio.h>
#include <sys/types.h>

int rdport(int, int*);
int rdACKadap();
int rd;
int i,x,y;
int setadap;
int ACKadap;
uint8_t bufRDport[255];

int main(int ARGC, char *ARGV[])
{
int mainfd;

int rdACKadap() //описание функции чтения подтверждения от адаптера
{
ACKadap = 1;
x = 2;
rdport(x, (int*) y);
ACKadap = 0;
}

int rdport(int x, int* y) //описание функции rdport
{

rd = read(mainfd, &bufRDport, x); //чтение из порта
if (rd == -1){
    fprintf(stderr, "Ошибка ввода из порта- %s\n",strerror(errno));
    return -1;
}

if (setadap || ACKadap)

for (i=0; i < bufRDport[1] +2; i++)
{
printf("%.2X ", bufRDport[i]);
return;
}
else
for (i=6; i < bufRDport[1]; i++)
printf("%.2X ", bufRDport[i]);
}

rdACKadap();
}

Оффлайн Peter_I

  • Старожил
  • *
  • Сообщений: 2939
    • Просмотр профиля
Re: ошибка при компиляции программки на си
« Ответ #1 : 19 Августа 2015, 23:37:30 »
Вынесите обе функции за пределы main.
Пётр.

Оффлайн santore

  • Автор темы
  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Re: ошибка при компиляции программки на си
« Ответ #2 : 20 Августа 2015, 10:08:51 »
спасибо, попробую

Оффлайн santore

  • Автор темы
  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Re: ошибка при компиляции программки на си
« Ответ #3 : 22 Августа 2015, 09:14:54 »
в принципе помогло, но требует полной переделки программы

Оффлайн Peter_I

  • Старожил
  • *
  • Сообщений: 2939
    • Просмотр профиля
Re: ошибка при компиляции программки на си
« Ответ #4 : 22 Августа 2015, 18:14:38 »
Вынести подпрограммы из main и одну из другой - это не переделка, т.к. логика работы не меняется.
Либо можете использовать опцию gcc "-std=gnu99", но я этого не делаю.
Пётр.

Оффлайн santore

  • Автор темы
  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Re: ошибка при компиляции программки на си
« Ответ #5 : 22 Августа 2015, 20:52:03 »
спасибо, буду исправлять, просто не понятная ошибка встретилась, просто у меня еще функций с десяток расположены в главной функции и не дают такой ошибки

 

Страница сгенерирована за 0.077 секунд. Запросов: 23.