如何在Visual Studio中调试单个.cpp文件?

4
有没有办法在Visual Studio.NET中调试单个文件? 我还是C++的新手,但我想开始学习如何使用调试器,并且现在我正在编写非常小的文件。
似乎如果只有一个源文件,它就不会让我调试,但是一旦我添加另一个文件,我就可以了。 我正在使用VS.net 2008。
7个回答

11

它不需要另一个源文件,而是需要一个项目文件。

Visual Studio 需要一堆信息来知道如何编译和调试您的源代码。例如要使用哪些优化设置、在哪里查找boost头文件等。

请尝试以下操作:转到文件->新建->项目...,选择一个win32控制台应用程序。在下一个向导中,转到应用程序设置,选中"空项目",然后点击"确定"。

现在您有了空项目和解决方案文件,可以将它们复制/粘贴到任何想要它们的地方;要进行调试,只需打开.sln文件,将您的单个.cpp文件拖入其中,然后按F5即可。


我也有同样的想法,每次设置尽量少。如果我知道这不是需要调试的东西,我会打开文本编辑器并从命令行编译,但对于稍微大一点的程序,这个方法也可以。谢谢! - patricksweeney
+1 for "Visual studio 需要...来查找 boost 头文件" :-) - Eamon Nerbonne

2
每当我想快速调试控制台程序时,我发现控制台是最好的起点。因此,我拿一个C++程序(blah.cpp)开始:
int main ()
{
    for (int i = 0; i < 100; i++)
        printf ("Hello World ... etc \n");
}

然后在控制台上设置我的环境(从cmd.exe):

vcvars32

然后编译我的程序(加上“Zi”选项以便我得到一个blah.pdp文件进行调试):
cl /Zi blah.cpp

现在我有一个可以运行的blah.exe文件。如果我想要调试blah.exe,我只需要从VS2008中打开一个项目并选择blah.exe而不是项目文件。我可以在IDE中打开blah.cpp并运行(F5),设置断点(F9)并进行调试(F10,F11)。


1

你在尝试调试的cpp文件中是否定义了主程序?使其工作的cpp文件是否有主程序?

你可以编译cpp文件,但语言定义应用程序的入口点为

int main()
{
}

(或者使用argv/argc命令行参数来签名,但这在这里并不重要)。

0
这个帖子已经很老了,但我的回答可能会对其他人有所帮助,因为我也遇到了同样的问题。 我使用 Bloodshed DevC++ 编译单个 C++ 文件。不需要使用 Visual Studio 创建整个项目。

0

在VS.net 2008中创建一个Visual C++控制台应用程序,并将要调试的cpp文件添加到项目中。

从由VS.Net 2008创建控制台项目时为您创建的主例程中调用在该cpp文件中定义的函数。


0

我的调试方式是:

  • 在我想要的位置设置断点。
  • 在Visual Studio中构建应用程序。
  • 按F5键使用调试器启动应用程序(如果你正在调试dll,你需要在项目属性中设置调用dll的exe)。
  • 赚钱! :)

如果断点从通常的红点变成黄色三角形,则意味着你没有调试你认为的代码 - 通常情况下,这发生在你的dll未加载时。如果你正在调试一个exe,那么你不会看到这个问题。

此外,请确保已经构建(并且具有Debug项目类型)。


0
你需要创建一个解决方案来进行调试。之后无论你有多少个源文件都不重要了。你可以使用“文件”->“新建”菜单来创建一个解决方案。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接