【发布时间】:2012-07-25 00:13:07
【问题描述】:
我有一个简单的项目,分为以下源文件:
我的.h:
#ifndef MY_H
#define MY_H
extern int val;
void print_val();
#endif
我的.cpp:
#include "my.h"
#include <iostream>
void print_val()
{
std::cout << val;
}
main.cpp:
#include "my.h"
int main()
{
val = 4;
print_val();
return 0;
}
当我编译时收到以下错误:
1>main.obj : error LNK2001: unresolved external symbol "int val" (?val@@3HA)
1>my.obj : error LNK2001: unresolved external symbol "int val" (?val@@3HA)
1>c:\...\test.exe : fatal error LNK1120: 1 unresolved externals
为什么会这样?我只是想在头文件中声明一个变量和函数,并在一个单独的源文件中定义函数。我使用 Visual C++ 2010 Express,项目是一个 Win32 控制台应用程序。
【问题讨论】:
-
你已经成功声明了变量,但是你必须在cpp中定义它,就像函数一样。