初学汇编,感觉很多不懂。不过那也是,如果懂了的话就不用学了,从无到有学习一门编程语言果然不是那么容易的一件事。
学习汇编总得要有一款汇编软件才行,没理由只是使用Windows自带的DEBUG。于是上了比较有名的AOGO汇编小站,浏览了一下,看到首页就有提示软件下载,非常好,不用我找了。虽然这个MASMPLUS不是老师推荐的那个,不过应该也不会差吧。
下载好了之后直接安装完毕,我马上就打开软件打算试一试这个东西。按着书上的一个简单程序打了上去,然后按那个“一步完成”按钮,下面马上显示出错。靠,不是吧,我对着书本来写上去的啊,难道这个“一步完成”有缺陷的?于是我试了试一步一步来进行。先是编译成“ASM”文件,然后接着连接成“OBJ”文件。就在连接成“OBJ”文件的这个步骤里面提示错误了。提示如下:
“LINK : error LNK2001: unresolved external symbol _WinMainCRTStartup
   2.exe : fatal error LNK1120: 1 unresolved externals”
搞什么啊,难道是我安装在D盘不行?难道要默认安装在C盘?不太可能吧?嗯,应该跟这个没关系。刚刚都没开始正式练习就来了这么个拦路虎,真有点郁闷 -_-!
不管那么多,先看看它提示说什么问题吧。虽然我英语不怎么好,但也总算认得它总体意思,大概就是说那个叫WinMainCRTStartup什么的外部符号未解决。应该是没找到这个东西之类吧。
好,问题大致上了解了。我根本不知道那个是什么东西,只好自己摸索一下了。在确定自己没有打错字母的之后,看来问题应该不是出在自己身上,不过这个软件才刚刚下载回来的啊,我都没有进行什么其他设置,也没有删除什么文件啊。只好从其他地方入手思考了。
经过参考了相关的资料和进行了一些思考之后,总算给我搞定了。原来只要在“配置”标签那里选择“系统配置”,再在编译/脚本那里勾上单独文件默认使用DOS模式(第二链接器)就可以了。
总算是能够编译运行了。用个软件都要花这么些时间,真够无奈的了,不过还好,起码问题是解决了。
总结一下
其实,问题的原因是:把编译Windows程序的选项打开了,这是一个DOS程序,当然不会有“ _WinMainCRTStartup”这种东西,这是Windows程序才用,就在外部引用的定义文件里。因此,选择使用DOS模式的就可以解决问题了。

MASMPlus编译出错:error LNK2001: unresolved external symbol _WinMainCRTStartup的更多相关文章

  1. MASMPlus连接出错:error LNK2001: unresolved external symbol _WinMainCRTStartup

    坑:汇编语言第三版使用的是masm5.0,网上找到了一个masm32,一看名字,不就是masm的32位版本吗.然也..这是另外一个软件 MASM32并非是指Microsoft的MASM宏汇编器.MAS ...

  2. VC++ : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall std::basic_string<wchar_t,struct std::char_traits<wchar_t>

    最近学习Google Breakpad,将其用在了自己的项目中,编译的版本为VS2010,没有什么问题.但是为了和之前的程序兼容,需要使用VS2008版本的程序,于是又编译了VS2008版本的代码,但 ...

  3. VC6.0 error LNK2001: unresolved external symbol __imp__ntohl@4

    --------------------Configuration: oxToint1 - Win32 Debug-------------------- Linking... main.obj : ...

  4. [异常] VC6.0 error LNK2001: unresolved external symbol _main解决办法

    来自:http://www.douban.com/note/65638800/ 学习VC++时经常会遇到链接错误LNK2001,该错误非常讨厌,因为对于编程者来说,最好改的错误莫过于编译错误,而一般说 ...

  5. VC6.0 error LNK2001: unresolved external symbol _main解决办法

    学习VC++时经常会遇到链接错误LNK2001,该错误非常讨厌,因为对于编程者来说,最好改的错误莫过于编译错误,而一般说来发生连接错误时,编译都已通过.产生连接错误的原因非常多,尤其LNK2001错误 ...

  6. (转载)浅析error LNK2001: unresolved external symbol "public: __thisc...

    学习VC++时经常会遇到链接错误LNK2001,该错误非常讨厌,因为对于      编程者来说,最好改的错误莫过于编译错误,而一般说来发生连接错误时,      编译都已通过.产生连接错误的原因非常多 ...

  7. 混合编程:error LNK2001: unresolved external symbol

    Vs2006+matlab2010rb环境: 1:工具-选项-项目解决方案-VC++目录设置include和lib的路径 2:项目-属性-属性配置-链接器-输入-附加依赖项把库的名字添加进去 VIST ...

  8. error LNK2001: unresolved external symbol @__security_check_cookie

    Q:VS2005编译的静态库, 在vc++6.0中连接出现错误 error LNK2001: unresolved external symbol @__security_check_cookie@l ...

  9. error LNK2001: unresolved external symbol "int g_cTemplates" (?g_cTemplates@@3HA)(转)

    原文转自:http://blog.sina.com.cn/s/blog_639a2ad70101kpen.html 编译directshow若干问题的解决 1.安装好windows sdk,进入dir ...

随机推荐

  1. 苹果App Store开发者帐户从申请,验证,到发布应用(2)

    app store付费 上面已经介绍了app store id的注册了,下面在注册基础上,介绍一下app store的付费.   在上面注册成功之后,会收到一封邮件.   1.收到邮件Thank Yo ...

  2. Maven项目中pom文件分析

    pom英文全称: project object model 1.概述 pom.xml文件描述了maven项目的基本信息,比如groupId,artifactId,version等.也可以对maven项 ...

  3. java学习(三) java 中 mongodb的各种操作

    一. 常用查询: 1. 查询一条数据:(多用于保存时判断db中是否已有当前数据,这里 is  精确匹配,模糊匹配 使用 regex...) public PageUrl getByUrl(String ...

  4. Insert Select

    有三种用法 1.insert  values 2.insert select 3.inser exec

  5. 好的 vim编辑博客

    http://www.cnblogs.com/ma6174/archive/2011/12/10/2283393.html 如果你不满足于使用现成的颜色主题的话,那我们来看一下如何修改环境配色.首先要 ...

  6. DP——由蒟蒻到神犇的进阶之路

    开始更新咯 DP专题[题目来源BZOJ] 一.树形DP 1.bzoj2286消耗战 题解:因为是树形结构,一个点与根节点不联通,删一条边即可, 于是我们就可以简化这棵树,把有用的信息建立一颗虚树,然后 ...

  7. NodeMCU之旅(四):实现Web配置页面

    引言 利用Web页面做配置可以轻松适应用户的多种设备,如Android, IOS等.本文将介绍如何在NodeMCU中实现配置页面. 接线图请参考NodeMCU之旅(三):响应配置按钮. 配置页面后端 ...

  8. Java 之 Spring加载(Java之负基础实战)

    1.下载后解压 2.在WEB-INF里面创建lib文件夹 3.拖入jar包 只拖入*.RELEASE.jar包

  9. 遗传算法GA

    遗传算法(Genetic Algorithms,GA)是一种全局优化方法,它借用了生物遗传学的观点,通过自然选择.遗传.变异等作用机制,实现种群中个体适应性的提高,体现了自然界中“物竞天择.适者生存” ...

  10. 2015年15+最佳的响应式HTML5网站模板

    015年最好的免费响应式HTML5模板通常用于创建新潮的网站. HTML5是HTML用于创建现代化网站的最新版本.随着这一现代标记语言的出现,网上冲浪的趋势变得越来越智能化越来越酷.几乎每个web开发 ...