C++: error LNK2001

今天同学碰到一个奇怪的问题,弄了半天知道问题出在哪,但不知道为什么。

  产生这个问题一般是以下原因:
1, 你用vc建了一个控制台程序,它的入口函数应该是main, 而你使用了WinMain.

2.  你用vc打开了一个.c/.cpp 文件,然后直接编译这个文件,这个文件中使用了WinMian而不是main作为入口函数。vc这时的默认设置是针对控制台程序的。

    解决方法
1.进入project->setting->c/c++, 在category中选择preprocessor,在processor definitions中删除_WINDOWS, 添加_CONSOLE

2.进入project->setting->Link, 在Project options中将/subsystem:windows.改为/subsystem:console

3.保存设置,Rebuild All. 

但是我同学这些配置都正确。一个Windows console工程。3个文件:pqueue.h,pqueue.cpp,main.cpp。pqueue.cpp中#include

"pqueue.h",main.cpp中#include "pqueue.h" 。出现error LNK2001错误。原因是pqueue中用到模板,模板的声明跟定义都放在pqueue.h中,编译就过了。

你可能感兴趣的:(C++,c,windows,C#,vc++)