链接外部变量c ++时出错

时间:2014-02-12 13:58:37

标签: c++ linker extern unresolved-external

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

1 个答案:

答案 0 :(得分:0)

您是否在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;
}