Ответ 1
Variable
должен быть определен где-то. Я бы объявил его глобальной переменной в MyLib.c
, а затем объявил ее как extern
в main.c
.
Случается, что для MyLib.c
и main.c
компилятору сообщается, что Variable
существует и является int
, но что он где-то еще (extern
). Это нормально, но тогда это должно быть где-то в другом месте, и когда ваш компоновщик пытается связать все файлы вместе, он не может найти Variable
на самом деле в любом месте, поэтому он сообщает вам, что он не существует.
Попробуйте следующее:
MyLib.c:
int Variable;
MyLib.h:
extern int Variable;
main.c:
#include "MyLib.h"
int main(void)
{
Variable = 10;
printf("%d\n", Variable);
return 0;
}