新手学C++,用vs2010运行书上的一个实例时出现问题,求解~~

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了新手学C++,用vs2010运行书上的一个实例时出现问题,求解~~相关的知识,希望对你有一定的参考价值。

书上的实例是:
#include <iostream>

int main()

std::cout << "Hello World!\n";
return 0;

输入上面的代码后,我点了“启动调试(F5)”,结果失败了,出现如下提示信息:
1>------ 已启动生成: 项目: hello, 配置: Debug Win32 ------
1>生成启动时间为 2011/8/12 9:08:37。
1>InitializeBuildStatus:
1> 正在对“Debug\hello.unsuccessfulbuild”执行 Touch 任务。
1>ClCompile:
1> 所有输出均为最新。
1> hello.cpp
1>c:\users\lenovo\documents\visual studio 2010\projects\hello\hello\hello.cpp(1): warning C4627: “#include <iostream>”: 在查找预编译头使用时跳过
1> 将指令添加到“StdAfx.h”或重新生成预编译头
1>c:\users\lenovo\documents\visual studio 2010\projects\hello\hello\hello.cpp(8): fatal error C1010: 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include "StdAfx.h"”?
1>
1>生成失败。
1>
1>已用时间 00:00:04.24
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
怎么回事啊?上火。。。
如4楼所说我选的是“Win32 控制台应用程序”,在这个项目下用一楼的办法成功运行了,然后按照2、4楼说的创建空项目,就不需要再加那条代码。
总之大家说的都对,我纠结到底把分给谁啊~~~
“Win32 控制台应用程序”和“空项目”有什么区别,多加的那个句子是什么意思?
我现在处于照葫芦画瓢的阶段,麻烦谁适当解释下吧,我酌情给分。。。

第一行加上: #include "stdafx.h"

补充回答:
因为你启用了预编译头文件,所以每个CPP文件第一行必须包含预编译头文件。如果你建立一个空的控制台工程,预编译头文件选项会被关闭,所以就不需要加这行。
参考技术A 你建立项目时有些问题,你选择Win32 控制台程序,在弹出的页面上,要勾选“空项目”就行了,然后再建立个cpp文件。

空项目就是,你选择Win32 控制台程序后,会弹出一个选项框,不要直接点确认,有下一步按钮,点一下,就会看到有“空项目”选项了
参考技术B 你在VS2010里面创健的是不是空项目,空项目我试过了没有问题,可能创健项目的时候有点小问题。
楼上那位说的应该是没错的。
参考技术C 一开始项目建的有问题

楼主去看看这个视频 百度搜一下 如鹏网 c语言也能干大事

编译 VS 2012 C++ 项目时出现致命错误无法运行“mt.exe”

【中文标题】编译 VS 2012 C++ 项目时出现致命错误无法运行“mt.exe”【英文标题】:Fatal error cannot run 'mt.exe' at compiling VS 2012 C++ project 【发布时间】:2013-09-29 15:12:11 【问题描述】:

我将 Visual Studio 升级到 VS Professional 2012。

构建旧的 Visual C++ 项目导致错误:

LINK:致命错误 LNK1158:无法运行“mt.exe”

将带有 mt.exe 的文件夹放入路径没有帮助。 目前我在 C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin\x64 文件夹中使用 mt.exe

【问题讨论】:

【参考方案1】:

在链接器中将“生成清单”设置为否。这有帮助

【讨论】:

【参考方案2】:

正如fatal error LNK1158: cannot run 'mt.exe' 所述,有时关闭清单生成不是一种选择,因为实际上是在使用清单。 在这一点上,人们回到解决实际问题。

实际问题的一个原因是可执行文件搜索路径错误。 我个人曾经在项目文件(VC++ 目录→项目设置中的可执行目录)中有一个$(ExecutablePath) 的设置,它产生了一个可执行的搜索路径,其中一个路径名不是有效的目录名。 路径名在其目录名组件之一中有一个冒号(由 ..\..\ 前缀到另一个变量,该变量恰好包含一个带有驱动器号的绝对路径名,而不是预期的相对路径名)。

在合理的世界中,仅由错误/丢失目录引起的路径搜索错误会导致路径名被跳过,搜索继续到搜索路径中的下一个路径名。 相比之下,link 会因此错误而失败(midl 在尝试查找 cl.exe 时确实如此)。 当您查看搜索路径(构建输出级别设置为“详细”)并看到包含mt.exe 的SDK 目录就在其中时,这是非常令人困惑的,就像白天一样。 看来link 并不生活在一个理智的世界里。 ☺

当然,修复是纠正错误的项目设置。

【讨论】:

以上是关于新手学C++,用vs2010运行书上的一个实例时出现问题,求解~~的主要内容,如果未能解决你的问题,请参考以下文章

C++ 我是新手 用vs2012时运行不了我想要的结果,求帮忙!!!

用vs2010编译fortran程序时出现rc.exe not found

如何在VS2010中运行编译C和C++?

c# vs2010连接SQLServer2008时出现“未将对象引用设置到对象的实例。”

下载了个VS2015写C++,但是运行的时候,结果窗口只是闪一下,没有显示出来,求大神解释

创建MFC时出现这个错误,怎么解决?