В C использование ранее необъявленной функции представляет собой неявное объявление функции. В неявном объявлении тип возвращаемого значения - int
, если я правильно помню. Теперь GCC имеет встроенные определения для некоторых стандартных функций. Если неявное объявление не соответствует встроенному определению, вы получите это предупреждение.
Чтобы решить проблему, вы должны объявить функции перед их использованием; обычно вы делаете это путем включения соответствующего заголовка. Я рекомендую не использовать флаги -fno-builtin-*
, если это возможно.
Вместо stdlib.h , вам следует попробовать:
#include <string.h>
Вот где определены strcpy
и strncpy
, по крайней мере, согласно справочной странице strcpy
(2).
Функция exit
определена в stdlib.h , поэтому я не знаю, что там происходит.