Пробовал - дохлый номер. Что уже только не пробовал, даже до egcs руки дошли :). Но ведь каким то образом можно вызывать этот долбаный ftoc !!! В SYSCALLS.c.X белым по синему(или как там еще) ясно написано: /* SYSCALLS.c:654:NC */ extern key_t ftok (const char *, int);
#include <stdio.h>
...
#include <linux/msg.h>
#include <unistd.h>
...
int main()
{
...
key=ftoc(PATH,'x');
if((qid=msgget(key,IPC_CREAT|0660))==-1)
fprintf(log,"Queue create failed\n");
else
fprintf(log,"Queue create successful\n");
...
}
...
Кусок проги пытающейся создать очередь сообщений.
При попытке компиляции выдает:
/tmp/ccCiozUO.o: In function `main':
/tmp/ccCiozUO.o(.text+0xdb): undefined reference to `ftoc'
collect2: ld returned 1 exit status
Если я правильно понял - компоновщик не находит библиотеку содержащуу код функции ftoc. Что надо прилинковывать?
Воистину торможу !!! Это же надо додуматься написать вместо ftok() ftoc() и потом почти неделю в программе ошибку искать !!! Линковать к ней все подряд и по другому всячески над ней глумится. Всем thx !!! Тут, наверное в ДНК ошибка.
Мда, бывает. Просто возьмите себе в привычку писать такой код, который при компиляции не дает предупреждений. Ведь наверняка компилер дал вам implicit function declaration.
cc -Wall -Werror.