日期:2014-05-16  浏览次数:20688 次

关于error LNK2001: unresolved external symbol 的一个发现
我在vc中编译了如下程序
file1.c
#include <time.h>  
#include <stdio.h>  
#include <dos.h>  
#include <conio.h>  
#include <string.h>

void myname(void);
void mytime(void);
void mylove(void);

void main()
{
 myname();
 mytime();
 mylove();

}
file2.cpp
void myname()
{
  printf("my name is fresh bird");
}
file3.c
void mytime()
{
  printf("now,the time is 22:37");
}
file4.c
void mylove()
{  
  printf("i love you ,helper");
}
结果在build的时候出现如下错误:
error LNK2001: unresolved external symbol
fatal error LNK1120: 1 unresolved externals
说是没有解决外部符号问题,找度娘找了几天都没有解决。仔细看了一下文件
结果发现file2.cpp不是.c文件。起初的时候我编写程序的时候认为这该没有问题吧,后来
实在没有办法了所以就将file2.cpp改为file2.c结果就成功了!程序可以运行了!
或许我这个发现很不值得一提,但还是希望后来人如果有这个问题可以参考一下!



------解决方案--------------------
C和CPP的函数名扩展方式不同,所以C语言是找不到C++的函数实现的