我可以在 Visual Studio 2012 中编译和调试(运行)单个 C++ 文件吗? (如何避免创建太多项目)
Posted
技术标签:
【中文标题】我可以在 Visual Studio 2012 中编译和调试(运行)单个 C++ 文件吗? (如何避免创建太多项目)【英文标题】:Can I compile and debug (run) a single C++ file in Visual Studio 2012? (How to avoid creating too many projects) 【发布时间】:2013-05-18 16:28:35 【问题描述】:我正在从一本书中学习 C++ 并使用 Visual Studio 2012。为了遵循本书的练习,我需要制作多个包含 main() 函数的 .cpp 文件。 有什么方法可以编译/调试我的程序,而无需每次都创建一个新项目?
例如,如果我写一个简单的“Hello, World!”文件然后决定制作其他非常简单的东西,我可以避免为每个简单程序制作一个新项目吗?有没有办法将 Visual Studio 2012 用作编译器?如果我可以将所有内容都放在一个项目中,我可以在其中编译我想要的任何单个文件并查看它运行,我会喜欢它。
感谢您的帮助。
【问题讨论】:
【参考方案1】:虽然添加这个答案为时已晚,但它可能对未来的观众有用。这就是我所做的 -
在试图弄清楚如何将 Visual Studio 用于您提出的相同目的时,我观察并发现对于 C++ 项目,应该只有一个起点,即只有一个 main()
函数。
因此,不要每次都创建一个新项目,只需将未使用的 C++ 文件中的 (main()
) 函数的名称更改为其他名称,例如文件名或其他名称。
例如,我首先使用main()
函数创建了我的第一个程序hello_world.cpp
,然后编译、运行并学习了我可以使用的所有内容它。
但现在我想创建一个新文件来尝试其他一些新事物(一个新文件 learn_operators.cpp
具有自己的 main()
函数)。
所以,在尝试编译和运行learn_operators.cpp
之前,我将在hello_world.cpp
中将main()
的名称更改为hello_world()
,然后以与以前相同的方式构建和运行项目,但这次只有这个新文件会运行,因为这是项目的(新)起点(即,它包含main()
函数)。
如果我在任何地方错了,希望这能帮助并纠正我。
更新:另一种方法是使用main()
保留一个文件,为其他项目代码创建类,包括添加到项目中的任何新文件/代码,然后从main()
。这样,除main()
之外的任何代码都被包裹在类中,并且每次必须调用新代码时,只有main()
中的代码会发生一些变化,而不是将函数重命名为main()
。
【讨论】:
【参考方案2】:要编译,只需制作一个 cpp 文件。并使用cl
命令行工具,检查MSDN Link: Compile a Native C++ Program from the Command Line 它有一个例子cl /EHsc simple.cpp
【讨论】:
以及如何告诉它仍然保持我项目的上下文?例如。我在 GUI 项目中编写了一些数据接口,我可以在独立文件中测试它,而不是运行巨大的 GUI 应用程序吗?【参考方案3】:-
右键单击文件。
转到您不想运行的特定文件的属性。
在配置属性中,转到常规。
将“从构建中排除”设置为“是”。
单击应用。
然后加载 Windows 调试器。
你准备好了!
【讨论】:
【参考方案4】:您也可以使用条件编译来解决这个问题。但我真的建议您努力为每个程序创建一个新项目。
header.h
#include<iostream>
#define __HelloWorld__
HelloWorld.cpp
#include"header.h"
#ifdef __HelloWorld__
int main()
std::cout << "Hello World" << std::endl;
#endif
program2.cpp
#include"header.h"
#ifdef __program2__
int main()
std::cout << "Program 2" << std::endl;
#endif
现在您可以通过#define
选择您要运行的程序。
【讨论】:
这是我第一次看到对宏的非常真实和救命的使用。【参考方案5】:您可以将所有 cpp 文件添加到具有不同文件名的同一项目中,然后您可以右键单击每个文件并排除您不想构建的文件。
不过,每个应用程序都有一个项目要好得多。
或者,您可以有一个主文件,在您实施练习的其他文件中调用您的其他函数,然后您不必处理任何事情,只需在新文件中实施新练习并从 main 调用它。
【讨论】:
仅仅为了测试几行代码就需要创建多个文件是荒谬的。 @KyleDelaney 没错。更不用说某些库生成main()
的项目了。【参考方案6】:
如果您在右窗格的项目浏览器窗口中右键单击解决方案名称,您应该能够在现有项目下添加项目。但是,最好为每个练习开始一个新项目。 Here你有参考。
【讨论】:
【参考方案7】:我只能找到 Visual Studio 2019 的解决方案,因此它可能不适用于 VS 2012。 您可以转到解决方案资源管理器,删除所有其他文件(只是删除,而不是删除),然后添加新文件。然后就可以编译了。
【讨论】:
以上是关于我可以在 Visual Studio 2012 中编译和调试(运行)单个 C++ 文件吗? (如何避免创建太多项目)的主要内容,如果未能解决你的问题,请参考以下文章