今天同学碰到一个奇怪的问题,弄了半天知道问题出在哪,但不知道为什么。
产生这个问题一般是以下原因:
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中,编译就过了。