Chr*_*utz 31
Variable必须在某处定义.我将宣布它作为一个全局变量MyLib.c,然后只把它声明为extern中main.c.
正在发生的事情是,对于双方MyLib.c和main.c,编译器被告知Variable存在并且是一个int,但它的其他地方(extern).哪个好,但是它必须实际上在其他地方,并且当你的链接器试图将所有文件链接在一起时,它Variable实际上找不到任何地方,所以它告诉你它不存在.
试试这个:
MyLib.c:
int Variable;
Run Code Online (Sandbox Code Playgroud)
MyLib.h:
extern int Variable;
Run Code Online (Sandbox Code Playgroud)
main.c中:
#include "MyLib.h"
int main(void)
{
Variable = 10;
printf("%d\n", Variable);
return 0;
}
Run Code Online (Sandbox Code Playgroud)