c++ - 'extern' 关键字有问题

标签 c++ visual-c++ linker-errors extern unresolved-external

我在 cpp 文件中有一组全局变量和一个方法。

int a;

int b;

int c;

void DoStuff()
{

}

在头文件中,我已经用 extern 关键字明确地声明了它们。我的问题是当我在另一个 C++ 文件中包含头文件时,我不能使用外部变量和方法。它给出了一个链接器错误,指出方法和变量的error LNK2001: unresolved external symbol。我在这里做错了什么??

PS:DoStuff() 方法填充变量。所有头文件和 cpp 文件都在同一个项目文件夹中。

谢谢!

最佳答案

试试这个

在标题中定义这些变量,而不是仅仅声明它们。

extern int x;只是一个声明(不是定义)

简单的例子

a.cpp

 int a,b,c; //definition

 void doStuff(){ 

 }

b.cpp

extern int a,b,c; //extern keyword is mandatory
void doStuff();   //extern keyword is optional because functions by default have external linkage

int main()
{

   doStuff();
}

关于c++ - 'extern' 关键字有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3252410/

相关文章:

visual-c++ - 严重错误LNK1104 : cannot open file

c++ - 未定义对 `__gxx_personality_sj0` 的引用

ios - 尝试在 iPhone 上测试应用程序时出错

c++ - C++ 是否允许将任何整数文字隐式转换为 short int?

c++ - 将 OpenGL 1.x 代码移植到 WebGL

C++ 打开 SSL EVP_aes_128_cbc()

c++ - 创建指向 "this"对象的指针

c++ - 无论我输入什么字符,我的程序都会循环

visual-studio - VC++ 2013 运行时 ClickOnce Bootstrap 包

c++ - ld 不识别目标文件