您的位置:首页 > 其它

蛋疼的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的其他版本或其他编译器试过)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: