我有一个简单的项目,分为以下源文件:
我的.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;
}
主.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 控制台应用程序。