【问题标题】:Error in linking external variable c++ [duplicate]链接外部变量c ++时出错[重复]
【发布时间】:2014-02-12 13:58:37
【问题描述】:

我有包含头文件的main.cpp 程序。 函数的实现在其他cpp文件中。

【问题讨论】:

标签: c++ linker extern unresolved-external


【解决方案1】:

您是否在 main 中声明了变量的实际存储? 在下面的示例中,外部变量在 common.h 中声明。 但是这个变量的实际存储在 main.cpp 中。

==> common.h <==
extern int var1, var2, var3, var4;

==> main.cpp <==
#include <iostream.h>
#include "common.h"
#include "other.h"

int var1, var2, var3, var4 = 4; /* the actual storage */
int main(int argc, char **argv)
{
    std::cout << sumVars() << endl;
}

==> other.h <==
int sumVars();

==> other.cpp <==
#include "common.h"

int sumVars() {
    return var1 + var2 + var3 + var4;
}

【讨论】:

  • 它与我的代码类似,但我在 main(); 中声明了这些变量;我如何在另一个 cpp 文件中声明的另一个函数中使用它们,而无需像你一样使这些变量成为全局变量?利夫尼
  • 如果你在main中声明了它们,那么它们是局部变量(在栈上),即使在同一个源文件中也不能被其他函数直接使用,也不能有外部链接。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-20
  • 1970-01-01
  • 1970-01-01
  • 2011-05-11
  • 2012-03-06
  • 1970-01-01
相关资源
最近更新 更多