0

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

project_2.vcproj 包含: source_2.c 具有修改标志值的功能。

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

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

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

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

4

3 回答 3

1

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

还要确保source_1.c包含在 project_2 中。

于 2012-08-02T19:50:22.940 回答
0

Project_2 必须包含 header_1.h 或 Project_2 必须声明extern int flag。无论哪种方式,您都需要将 Project_2 与int flag. 否则,project_2 不会操纵int flag位于 Project_1 中的 in 的值。

于 2012-08-02T19:53:34.297 回答
0

提取int flag = 0到单独的 .c 文件中并将该源文件添加到两个项目中

于 2012-08-02T20:17:20.140 回答