编译windows程序时出现错误的原因求解

Jayki 2010-12-30 10:34:16
今天照着书写了段windows程序,编译时出现了链接错误,然后边改边查资料把问题给解决了,但是不知道原因,所以希望大家帮忙解释一下,先谢谢啦!

一开始出现的错误是:

Linking...
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/firstwindows.exe : fatal error LNK1120: 1 unresolved externals
执行 link.exe 时出错.

解决方法:打开‘工程’下的‘设置’,选中‘链接’后
将 /subsystem:console 改为
/subsystem:windows
再次编译时,又出现了错误,
错误:
LINK : fatal error LNK1117: syntax error in option "subsystem:windows/incremental:yes"

之后,我把工程设置里的连接中的incremental:yes删掉了,链接就没有问题了

虽然问题解决了,但是不知道原因,所以希望大家帮忙解释一下,随便说点都行。
...全文
213 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xunxun 2010-12-31
  • 打赏
  • 举报
回复
注意建立的工程类型
arong1234 2010-12-31
  • 打赏
  • 举报
回复
没错,但是既然它在找main,说明你中间必定作了什么修改,导致它变成console了。

如果是vc6,你应该没有机会修改,除非手工改设置
如果是vs更高版本,你必须在选择Win32 Application之后,选择Windows Application,不能选择Console Application
[Quote=引用 7 楼 jayki 的回复:]
引用 5 楼 arong1234 的回复:
第一个错误是工程类型不符合,可能lz根本没建立工程或者建立错误工程
第二个错误是修改时两个选项中间没有加分割符号,两个选项连成一个选项了

我建立的是 Win32 Application工程,类型应该没错吧!
[/Quote]
Jayki 2010-12-31
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 arong1234 的回复:]
第一个错误是工程类型不符合,可能lz根本没建立工程或者建立错误工程
第二个错误是修改时两个选项中间没有加分割符号,两个选项连成一个选项了
[/Quote]
我建立的是 Win32 Application工程,类型应该没错吧!
erhan_106 2010-12-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 thefirstz 的回复:]
win32和console程序还是有区别的,进入函数都不太一样
[/Quote]
W32应用程序和Console(控制台)应用程序的入口函数是不一样的,楼主可能是建立工程的时候选择的是控制台工程。
arong1234 2010-12-31
  • 打赏
  • 举报
回复
第一个错误是工程类型不符合,可能lz根本没建立工程或者建立错误工程
第二个错误是修改时两个选项中间没有加分割符号,两个选项连成一个选项了
luciferisnotsatan 2010-12-31
  • 打赏
  • 举报
回复
win32和console的入口函数不同
昵称很不好取 2010-12-30
  • 打赏
  • 举报
回复
win32和console程序还是有区别的,进入函数都不太一样

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧