使外部变量在sln文件中的所有项目中全局可见

时间:2012-08-02 19:43:17

标签: c global

project_1.vcproj包含: header_1.h有“extern int flag;”被宣布。 source_1.c已初始化“int flag = 0”

project_2.vcproj包含: source_2.c有一个修改flag值的函数。

#include "header_1.h"
 void setFlag() {
    flag = 1;
}

当我尝试编译时,我收到链接错误: 错误LNK2001:未解析的外部符号“int flag”

我想要实现的是我希望flag的值全局可见。 因为在标志设置为1之后,source_1.c使用此信息做其他事情。

请让我知道如何实现我。感谢。

3 个答案:

答案 0 :(得分:1)

您必须#include "header_1.h"顶部source_2.c

还要确保项目_2中包含source_1.c

答案 1 :(得分:0)

Project_2必须包含header_1.h或Project_2必须声明extern int flag。无论哪种方式,您都需要将Project_2与int flag的实际存储位置相关联。否则,project_2将不会操作位于Project_1中的int flag的值。

答案 2 :(得分:0)

int flag = 0解压缩到单独的.c文件中,并将该源文件添加到两个项目中