【发布时间】:2023-09-21 17:06:01
【问题描述】:
我一直在通过 * 和网络搜索答案,看起来我这样做是正确的,但我无法让它工作。
我制作了一个使用 extern 的测试程序(如果有什么不同,它会在 xCode 上使用项目功能)。我正在尝试声明一个变量,我可以在程序中的任何位置访问该变量,每当我更改该变量的值时,我都希望能够访问更改后的值。
到目前为止我所做的是我有一个头文件
externFile.h
还有一个
externFile.c
当然还有我的 main.c
在 externFile.h 我定义了:
extern int ply;
在 main.c 我有:
int main()
{
int ply;
ply = 5;
printPly();
}
在 externFile.c 我有:
void printPly(){
printf("%d is ply.\n", ply);
}
但是我收到了这个错误:
_ply referenced from _printPly
ld symbols not found for architecture x86_64
有人对此有什么想法吗?
【问题讨论】:
-
您是否将
externFile.h包含在externFile.c中? -
...在 main.c 中?它必须在两者中。
-
显示完整的
main.c。我有一种感觉ply是main本地的.... -
请发布显示问题的Minimal, Complete, and Verifiable example。涉及的三个文件总共只需要十几行。
-
您可以在
main(以及任何其他函数)之外定义一个全局变量。