2011-12-23 126 views
3

我有一个非常简单的C++应用程序。Visual Studio抱怨编译调试时找不到.exe

#include <stdio.h> 
#include <iostream> 

int main(int argc, char argv[]) { 
    cout << "hi" << endl; 
} 

当我编译在调试模式下的第一次,Visual Studio中抱怨“无法启动程序.. \调试\ myprogram.exe,系统找不到指定的文件。”

但是,我认为这很明显,因为我第一次编译,对吧?这个可执行文件应该还不存在,那么为什么Visual Studio在编译时会变得笨拙?

感谢您的帮助。

此外,当我建立,将出现以下日志:

当我建(建设 - >生成解决方案),显示此日志:

1>------ Build started: Project: print_digits, Configuration: Debug Win32 ------ 
1>Build started 12/23/2011 4:32:17 PM. 
1>InitializeBuildStatus: 
1> Creating "Debug\print_digits.unsuccessfulbuild" because "AlwaysCreate" was specified. 
1>FinalizeBuildStatus: 
1> Deleting file "Debug\print_digits.unsuccessfulbuild". 
1> Touching "Debug\print_digits.lastbuildstate". 
1> 
1>Build succeeded. 
1> 
1>Time Elapsed 00:00:00.08 

它说构建成功,但没有可执行由于某种原因正在建造。

+1

你可以发布完整的构建日志吗? – 2011-12-23 21:59:55

+0

当然(我已经发布上​​面的生成日志)。 – dangerChihuahua007 2011-12-23 22:36:01

+3

您可以检查您正在尝试构建的项目是否标记为:Build - > Configuration Manager? – 2011-12-23 22:38:08

回答

0

这里有几个问题:

1)此错误是关于尝试运行的程序,而不是编译:

“无法启动程序.. \调试\ myprogram.exe。系统不能 找到指定的文件。“

2)可能是它找不到程序的原因是因为它失败了编译。

下面是我从你的源得到了错误:

tmp.cpp(5) : error C2065: 'cout' : undeclared identifier 
tmp.cpp(5) : error C2297: '<<' : illegal, right operand has type 'char [3]' 
tmp.cpp(5) : error C2065: 'endl' : undeclared identifier 
tmp.cpp(6) : warning C4508: 'main' : function should return a value; 'void' return type assumed 

你应该可以,如果你添加到解决这些特定的错误“使用命名空间std;”

得到一个干净的编译,你应该能够运行调试:)

+0

谢谢!我尝试过Build-> Clean Solution。日志记录“构建成功”,但是当我尝试运行调试器时,出现相同的错误。确实,在检查之后,我的Debug文件夹中不存在可执行文件。 – dangerChihuahua007 2011-12-23 22:31:59

0

我有一个类似的错误,当我没有申报库后我在“属性”中正确使用。

我想我所要做的就是在Properties/Linker/Input/Additional Dependencies中编写.lib文件的名称,并在“VC++目录”中设置路径。但是你不应该只用stdio和iostream来解决这个问题。

0

同样的问题曾经面临过一些RND终于找到了解决方案。 解决方案 - 转至项目属性 - >安全选项卡 - >取消选中“启用ClickOnce安全设置”。

1

我有同样的问题。问题在于我的杀毒软件(在我的情况下是Avast)在创建时自动删除文件。而且因为我在静音模式下使用了Avast,所以没有注意到我的删除。因此,禁用防病毒或设置排除规则对我有帮助。

0

我与Visual Studio 2015有同样的问题。 如果我有两个项目的解决方案,并将链接器 - >常规中的输出文件设置为$(IntDir)$(TargetName)$(TargetExt),那么它会生成一个.exe文件(我已验证它存在),但是我不能通过Visual Studio运行它。 我目前没有这个问题的解决方案,除了恢复到$(OutDir)。 目前的问题是两个项目都在$(IntDir)中生成目标文件,但我在同一个文件夹中获得了两个不同的.exe文件。 一旦我试图改变输出位置,我一直无法让调试器通过Visual Studio执行.exe文件,所以我怀疑我需要编辑.sln或.vcxproj文件来解决问题。 不幸的是,Visual Studio有问题,并且可能需要在这些情况下直接编辑xml文件,如果这些是您遇到的问题。