蛋疼的extern和error LNK2001: unresolved external symbol
2013-10-24 18:49
435 查看
编程过程中总会遇到一些小问题,有些是大意引起的,越是着急越找不到问题所在;有些是因为有一些小知识点你不知道引起的。总之,有时找不到问题所在真的很蛋疼。。。
这篇小短文要说的是因为extern和源文件后缀名(.cpp ? .c)引起的 连接错误“error LNK2001: unresolved external symbol "int test_test" (?test_test@@3HA)”, 开发环境为Visual Studio 2005 + Windows XP。
vs2005建立了console空工程之后,添加了下面文件:
1、main.cpp
#include "test.h"
void main()
{
test_test = 2;
}
2、test.h
#ifndef test_h
#define test_h
extern int test_test;
#endif
3、test.c
#include "test.h"
int test_test = 123;
【编译】时,就出现下面的错误:
1>main.obj : error LNK2001: unresolved external symbol "int test_test" (?test_test@@3HA)
刚开始找了很久就发现问题,真的很蛋疼,后台干脆早点去吃饭了,回来跟之前代码中用到extern的代码对比了一下。突然想到了,可能是因为源文件后缀名引起的,修改test.c为test.cpp,一些OK了,蛋也不疼了。于是写出来,希望能帮到其他朋友。
(”error LNK2001: unresolved external symbo“这个错误有很多种原因引起的,这只是一种情况。另外也没有在Visual Studio的其他版本或其他编译器试过)
这篇小短文要说的是因为extern和源文件后缀名(.cpp ? .c)引起的 连接错误“error LNK2001: unresolved external symbol "int test_test" (?test_test@@3HA)”, 开发环境为Visual Studio 2005 + Windows XP。
vs2005建立了console空工程之后,添加了下面文件:
1、main.cpp
#include "test.h"
void main()
{
test_test = 2;
}
2、test.h
#ifndef test_h
#define test_h
extern int test_test;
#endif
3、test.c
#include "test.h"
int test_test = 123;
【编译】时,就出现下面的错误:
1>main.obj : error LNK2001: unresolved external symbol "int test_test" (?test_test@@3HA)
刚开始找了很久就发现问题,真的很蛋疼,后台干脆早点去吃饭了,回来跟之前代码中用到extern的代码对比了一下。突然想到了,可能是因为源文件后缀名引起的,修改test.c为test.cpp,一些OK了,蛋也不疼了。于是写出来,希望能帮到其他朋友。
(”error LNK2001: unresolved external symbo“这个错误有很多种原因引起的,这只是一种情况。另外也没有在Visual Studio的其他版本或其他编译器试过)
相关文章推荐
- Win7 WPF程序无法接受外部拖拽
- 高调coding,低调做人 peakflys P2P的原理和常见的实现方式(为libjingle开路)
- gcc.g++ 编译调用共享库 静态库
- 堆排序----(排序算法六)
- 教你使用shell数组
- 图形学 Direct3D的3D模型处理1
- 堆排序----(排序算法六)
- MySQL数据备份之mysqldump使用
- Nginx 负载均衡模块 ngx_http_upstream_module 详述
- Nginx 负载均衡模块 ngx_http_upstream_module 详述
- sql字符串处理
- 哈希表
- Linux chmod授权命令说明
- float类型
- java:日期相关Date,Calendar,SimpleDateFormat
- uva 1428 - Ping pong
- python 变量作用域
- 网络第三课(2)--解包(dns域名解析)
- 我的词库表——OJT培训
- Android SDK无法更新问题解决