C++编译良好,但无法调试

C++ Compiles fine but cannot debug

本文关键字:调试 编译 C++      更新时间:2023-10-16

好的,让我说得很清楚,这样我以后就不必重复了。请仔细阅读,我会尽量简明扼要。我会把我想强调的部分加粗。

我非常擅长C++,我不是一个程序员。我做了很多项目,我想这是6个月内第二次发生这种情况。

问题是,我开始了一个控制台项目,它没有控制台,但有一个SDL库启动的opengl窗口。我玩得很开心,所有的构建和调试了我的项目好几次,它构建和运行都很好

然后,突然,我在添加了一些内容后构建了我的项目(如果你想知道的话,可以发射子弹),我想测试添加内容它构建得很好(构建成功),但当我尝试开始调试时,它说找不到.exe文件。它似乎没有创建.exe文件。

下面是一些你可能想知道的精确信息:

  • 我没有更改项目设置,它以前运行得很好
  • 这与我的子弹射击无关,我的意思是它建造得很好
  • 我的项目有一个main.cpp和一个我制作的GLRect类,还有一个我用游戏常量制作的GameConstants.h文件
  • 我使用的是Visual Studio 2010,我安装了带有SDL_image插件的SDL-1.2.15库
  • 我在Windows 8 64位笔记本电脑上运行,规格如下:16GB内存i7常春藤桥处理器2.3GHzNVIDIA GTX 670M 3GB图形卡

如果您需要更多规格,只需询问

  • Origine是我项目的名字
  • 在C:。。。\Origine\Origine\Debug\我有很多.tlog文件

这是一个构建日志,但它是法语的。。。

1>------ Rebuild All started: Project: Origine, Configuration: Debug Win32 ------
1>Build started 2013-07-01 01:54:39.
1>_PrepareForClean:
1>  Deleting file "DebugOrigine.lastbuildstate".
1>InitializeBuildStatus:
1>  Creating "DebugOrigine.unsuccessfulbuild" because "AlwaysCreate" was specified.
1>ClCompile:
1>  main.cpp
1>c:usersalexandredocumentsvisual studio 2010projectsjeuxorigineorigineglrect.h(14): warning C4244: 'argument' : conversion de 'const double' en 'int', perte possible de données
1>c:usersalexandredocumentsvisual studio 2010projectsjeuxorigineorigineglrect.h(14): warning C4244: 'argument' : conversion de 'const double' en 'int', perte possible de données
1>c:usersalexandredocumentsvisual studio 2010projectsjeuxorigineorigineglrect.h(14): warning C4244: 'argument' : conversion de 'const double' en 'int', perte possible de données
1>c:usersalexandredocumentsvisual studio 2010projectsjeuxorigineorigineglrect.h(14): warning C4244: 'argument' : conversion de 'const double' en 'int', perte possible de données
1>c:usersalexandredocumentsvisual studio 2010projectsjeuxorigineoriginemain.cpp(26): warning C4244: 'argument' : conversion de 'time_t' en 'unsigned int', perte possible de données
1>c:usersalexandredocumentsvisual studio 2010projectsjeuxorigineoriginemain.cpp(133): warning C4018: '<' : incompatibilité signed/unsigned
1>c:usersalexandredocumentsvisual studio 2010projectsjeuxorigineoriginemain.cpp(161): warning C4018: '<' : incompatibilité signed/unsigned
1>  GLRect.cpp
1>c:usersalexandredocumentsvisual studio 2010projectsjeuxorigineorigineglrect.h(14): warning C4244: 'argument' : conversion de 'const double' en 'int', perte possible de données
1>c:usersalexandredocumentsvisual studio 2010projectsjeuxorigineorigineglrect.h(14): warning C4244: 'argument' : conversion de 'const double' en 'int', perte possible de données
1>c:usersalexandredocumentsvisual studio 2010projectsjeuxorigineorigineglrect.h(14): warning C4244: 'argument' : conversion de 'const double' en 'int', perte possible de données
1>c:usersalexandredocumentsvisual studio 2010projectsjeuxorigineorigineglrect.h(14): warning C4244: 'argument' : conversion de 'const double' en 'int', perte possible de données
1>c:usersalexandredocumentsvisual studio 2010projectsjeuxorigineorigineglrect.cpp(46): warning C4244: 'argument' : conversion de 'double' en 'GLfloat', perte possible de données
1>c:usersalexandredocumentsvisual studio 2010projectsjeuxorigineorigineglrect.cpp(46): warning C4244: 'argument' : conversion de 'double' en 'GLfloat', perte possible de données
1>c:usersalexandredocumentsvisual studio 2010projectsjeuxorigineorigineglrect.cpp(47): warning C4244: 'argument' : conversion de 'double' en 'GLfloat', perte possible de données
1>c:usersalexandredocumentsvisual studio 2010projectsjeuxorigineorigineglrect.cpp(47): warning C4244: 'argument' : conversion de 'double' en 'GLfloat', perte possible de données
1>c:usersalexandredocumentsvisual studio 2010projectsjeuxorigineorigineglrect.cpp(48): warning C4244: 'argument' : conversion de 'double' en 'GLfloat', perte possible de données
1>c:usersalexandredocumentsvisual studio 2010projectsjeuxorigineorigineglrect.cpp(48): warning C4244: 'argument' : conversion de 'double' en 'GLfloat', perte possible de données
1>c:usersalexandredocumentsvisual studio 2010projectsjeuxorigineorigineglrect.cpp(49): warning C4244: 'argument' : conversion de 'double' en 'GLfloat', perte possible de données
1>c:usersalexandredocumentsvisual studio 2010projectsjeuxorigineorigineglrect.cpp(49): warning C4244: 'argument' : conversion de 'double' en 'GLfloat', perte possible de données
1>c:usersalexandredocumentsvisual studio 2010projectsjeuxorigineorigineglrect.cpp(54): warning C4244: 'argument' : conversion de 'double' en 'GLfloat', perte possible de données
1>c:usersalexandredocumentsvisual studio 2010projectsjeuxorigineorigineglrect.cpp(54): warning C4244: 'argument' : conversion de 'double' en 'GLfloat', perte possible de données
1>c:usersalexandredocumentsvisual studio 2010projectsjeuxorigineorigineglrect.cpp(55): warning C4244: 'argument' : conversion de 'double' en 'GLfloat', perte possible de données
1>c:usersalexandredocumentsvisual studio 2010projectsjeuxorigineorigineglrect.cpp(55): warning C4244: 'argument' : conversion de 'double' en 'GLfloat', perte possible de données
1>c:usersalexandredocumentsvisual studio 2010projectsjeuxorigineorigineglrect.cpp(56): warning C4244: 'argument' : conversion de 'double' en 'GLfloat', perte possible de données
1>c:usersalexandredocumentsvisual studio 2010projectsjeuxorigineorigineglrect.cpp(56): warning C4244: 'argument' : conversion de 'double' en 'GLfloat', perte possible de données
1>c:usersalexandredocumentsvisual studio 2010projectsjeuxorigineorigineglrect.cpp(57): warning C4244: 'argument' : conversion de 'double' en 'GLfloat', perte possible de données
1>c:usersalexandredocumentsvisual studio 2010projectsjeuxorigineorigineglrect.cpp(57): warning C4244: 'argument' : conversion de 'double' en 'GLfloat', perte possible de données
1>c:usersalexandredocumentsvisual studio 2010projectsjeuxorigineorigineglrect.cpp(165): warning C4244: 'argument' : conversion de 'double' en 'int', perte possible de données
1>c:usersalexandredocumentsvisual studio 2010projectsjeuxorigineorigineglrect.cpp(165): warning C4244: 'argument' : conversion de 'double' en 'int', perte possible de données
1>  Génération de code en cours...
1>MSVCRTD.lib(cinitexe.obj) : warning LNK4098: conflit entre la bibliothèque par défaut 'msvcrt.lib' et les autres bibliothèques ; utilisez /NODEFAULTLIB:library
1>Manifest:
1>  Deleting file "DebugOrigine2.exe.embed.manifest".
1>MSVCRTD.lib(cinitexe.obj) : warning LNK4098: conflit entre la bibliothèque par défaut 'msvcrt.lib' et les autres bibliothèques ; utilisez /NODEFAULTLIB:library
1>  Origine.vcxproj -> C:UsersAlexandreDocumentsVisual Studio 2010ProjectsJeuxOrigineDebugOrigine2.exe
1>FinalizeBuildStatus:
1>  Deleting file "DebugOrigine.unsuccessfulbuild".
1>  Touching "DebugOrigine.lastbuildstate".
1>
1>Build succeeded.
1>
1>Time Elapsed 00:00:02.05
========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========

问题出在您的防病毒软件上。明显的症状是,当您立即尝试手动启动文件时,该文件会被删除(并且您认为这是问题所在)。有关如何将异常添加到目录或文件的信息,请参阅防病毒文档。