Следующий код:
#include <stdio.h>
inline int myfunc (int x) {
return x+3;
}
int main () {
printf("%d", myfunc(2));
return 0;
}
не компилируется, когда я использую флаг -std=gnu99
(компилирую с помощью gcc). Это ошибка, которую он выдает:
gcc -std=gnu99 -c main.c -o main.o
gcc -std=gnu99 main.o -o main
main.o: In function `main':
main.c:(.text+0x15): undefined reference to `myfunc'
collect2: ld returned 1 exit status
make: *** [main] Error 1
В компиляции нет проблем, когда -std=gnu99
опущен. Кто-нибудь знает, почему компоновщик жалуется, если используется -std=gnu99
?