链接错误与头文件中的全局变量

时间:2015-02-06 10:12:54

标签: c++ visual-studio-2010

我举一个非常接近我的代码的例子:

camera.h

#pragma once

#ifndef VCL_CAMERA_TRACKING_H
#define VCL_CAMERA_TRACKING_H

extern int x;
....
#endif

的main.cpp

#include "camera.h"
...    
int x = 15;

b.cpp

#include "camera.h"
...
int example = 15;
int numFaces = 0;
...
if(numFaces<1) x = example;
...

当我在VS10中构建我的项目时,我得到“错误LNK2001:未解析的外部符号”int x“(?x @@ 3HA)at b.cpp”。

这很奇怪,因为我在camera.h中声明了x并在main.cpp中定义了它

1 个答案:

答案 0 :(得分:1)

您已宣布您的符号:

extern int x;

但是你没有在任何地方定义你的符号。你需要把

int x;

在您的一个源文件中。