Похоже, что вы (1) не включили <stdio.h>
, где вы используете FILE
, и / или (2) у вас есть некоторый не static
исполняемый код или не extern
определения переменных в ваши заголовки (и / или #include
в C-файле).
Первое обычно приводит к тому, что FILE
не будет определено (или будет typedef
'для типа, который не существует, в некоторых случаях). Второе приведет к тому, что материал будет определен в каждой единице перевода, которая включает в себя файл, что запутает компоновщик.
Исправить: (1) #include <stdio.h>
в файле, где используется FILE
, и (2) переместить общие определения из заголовков в файл .c (и / или объявить их как static
или extern
при необходимости) и только #include
.h файлов.