【问题标题】:How do I debug a single .cpp file in Visual Studio?如何在 Visual Studio 中调试单个 .cpp 文件?
【发布时间】:2009-04-23 13:49:11
【问题描述】:

有没有办法在 Visual Studio.NET 中调试单个文件? 我仍然是 C++ 的菜鸟,但我想开始学习如何熟悉调试器,并且现在我正在编写非常小的文件。

似乎只有一个源文件,它不会让我调试,但是当我添加另一个时,我可以。我正在使用 VS.net 2008。

【问题讨论】:

    标签: c++ visual-studio-2008 debugging


    【解决方案1】:

    它不想要另一个源文件,它想要一个项目文件。

    Visual Studio 需要大量信息来了解如何编译和调试源代码。诸如使用哪些优化设置、在哪里寻找 boost 标头之类的事情。

    试试这个:转到File->New->Project... 并选择一个win32 控制台应用程序。在下一个向导中,转到Application Settings,并选中“Empty Project”,然后点击 OK。

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

    【讨论】:

    • 我在想同样的想法,每次设置最少。如果我知道这是我不会调试的东西,我会打开一个文本编辑器并从命令行编译,但这适用于稍微大一点的程序。谢谢!
    • +1 表示“Visual Studio 需要...查找 boost 标头”:-)
    【解决方案2】:

    您是否在尝试调试的此 cpp 中定义了一个主例程?您添加的使其工作的 cpp 是否具有主例程?

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

    int main()
    {
    }
    

    (或带有 argv/argc 命令行参数的签名,但这在这里并不重要)。

    【讨论】:

      【解决方案3】:

      每当我想快速调试控制台程序时,我发现控制台是最好的起点。所以我拿了一个 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)。

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

          【解决方案5】:

          我调试:

          • 在我想要的地方放置一个断点。
          • 在 Visual Studio 中构建应用程序。
          • 按 F5 启动应用程序 调试器(如果它是一个 dll 你是 调试,你需要设置exe 调用项目中的dll 特性)。
          • 利润! :)

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

          另外,请确保您已构建(并具有项目类型)为 Debug。

          【讨论】:

            【解决方案6】:

            您需要创建一个解决方案才能进行调试。之后,您拥有多少源文件并不重要。您可以使用 File->New 菜单创建解决方案。

            【讨论】:

              【解决方案7】:

              线程很老,但我的回答可能会帮助其他人,因为我遇到了同样的问题。 我使用 Bloodshed DevC++ 编译单个 C++ 文件。无需使用 Visual Studio 创建整个项目。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2021-06-23
                • 2011-07-15
                • 2020-07-06
                • 1970-01-01
                • 2013-06-06
                相关资源
                最近更新 更多