unresolved external symbol彻底解决方法
【unresolved external symbol彻底解决方法】关于error LNK2001:unresolved external symbol _main
我想大多数好友把网上下载好的例子,载入进行编译,可是出现error LNK2001: unresolved external symbol _main和fatal error LNK1120: 1 unresolved externals ,刚开始还挪动到安装目录工程下,没有任何效果,于是百度查找许久,把解决方法写下:
一、原因1,你用vc建了一个控制台程序,它的入口函数应该是main, 而你使用了WinMain。
2、你用vc打开了一个.c/.cpp 文件,然后直接编译这个文件,这个文件中使用了WinMian而不是main作为入口函数。vc这时的默认设置是针对控制台程序的。Windows子系统设置错误,提示:libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main,Windows项目要使用Windows子系统,而不是Console。
二、 解决方法:1、进入【project】->【setting】->c/c++, 在category(类型目录)中选择preprocessor(预处理器),在processor definitions中删除_console, 添加_windows。
2、进入【project】->【setting】->Link(连接), 在Project options中将 /subsystem:console改为/subsystem:windows。关于ddk集成于vc编译环境的搭建出现error LNK2001: unresolved external symbol__imp__KeGetCurrentIrql@0的解决方法。对于习惯使用VC++集成编译环境的人来说用DDK编译驱动程序的痛苦是无法想象的,如何才能用VC++的集成编译环境编译驱动程序?经过一段时间的摸索以及对网络上的其它帖子的精华进行总结,特将搭建集成开发环境的详细过程描述如下:首先安装VC++6.0,接下来安装winddk,最后安装DriverStudio。三者安装顺序不能出错,如果出错了卸载再安装顺序重新安装好就行。
具体搭建方式如下:
1.用vc新建一个工程。
2. 在"project"选项卡中,选择win32 Application,选择一个空工程。
3. 将两个源文件Driver.h和Driver.cpp拷贝到工程目录中,并添加到工程中。(如果没有,可以先跳过此步,到完成第七步后再编写源文件)。
4. 增加新的编译版本,去掉Debug 和Release 版本。选择“Build|Configurations”点击“Add”在配置框中直接输入“Driver Check Edtion”。这一步是将DDK编译版本添加到该工程中。Debug和Release版本不去掉也可以。
5. 修改工程属性。选择"Project|Setting",或者直接按下Alt+F7键,弹出"Project Settings"。在对话框中,选择“General”选项卡。将Intermediate files和Output files改为MyDriver_Check. 选择C/C++选项卡,将原有的Project Options 内容全部删除替换成如下内容: /nologo /Gz /MLd /W3 /WX /Z7 /Od /D WIN32=100 /D _X86_=1 /D WINVER=0X500 /D DBG=1 /Fo"MyDriver_Check/" /Fd"MyDriver_Check/" /FD /c选择Link选项卡,将原有的Project Options 内容全部删除,替换成如下内容:ntoskrnl.lib hal.lib /nologo /base:"0x10000" /stack:0x400000,0x1000 /entry:"DriverEntry" /subsystem:console /incremental:no /pdb:"MyDriver_Check/driver.pdb" /debug /machine:I386 /nodefaultlib /out:"MyDriver_Check/driver.sys" /pdbtype:sept /subsystem:native /driver /SECTION:INIT,D /RELEASE /IGNORE:4078 如果不包含hal.lib,会使得编译出错,出现如下错误。
error LNK2001: unresolved external symbol __imp__KeGetCurrentIrql@0
6. 修改VC的lib目录和include目录。
在vc中选择"Tools"|"Options",在弹出的对话框中选择“Directories”选项卡。在“Show directories for”下拉菜单中选择“Include files”菜单,添加“D:\WINDDK\2600\INC\W2k”和“D:\WINDDK\2600\INC\DDK\WDM\W2k”并将这两个目录置于最上。如果提示没有包含什么头文件,直接搜索文件名,找到路径,添加目录就行。在"Show directories for "下拉菜单中选择“Library files”菜单,添加目录“D:\WINDDK\2600\LIB\W2k\I386”并置于最上端。
7. 点击DriverStudio,选择DDK Build Settings,将DDK路径指向DDK安装文件夹。
8. 编译。
以上是关于经常出现unresolved external symbol的问题解决方法。
本文来源 我爱IT技术网 http://www.52ij.com/jishu/400.html 转载请保留链接。
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)

不错!~按照这些方法解决了我的问题。谢谢分享人!!