在Visual Studio中不创建项目的情况下运行小型C++程序

18

有没有一种方法可以在Visual Studio中构建/运行小型C++程序而不创建项目?

例如,如果我有一个文件hello.cpp,我能否在不使用项目的情况下将其编译为hello.exe?


3
请问您能否使用cl(http://msdn.microsoft.com/en-us/library/9s7c9wdw(VS.71).aspx)以及make或nmake(http://msdn.microsoft.com/en-us/library/dd9y37ha(VS.71).aspx)?请将其翻译为中文。 - Matthew Flaschen
谢谢,但是有没有办法在VS2008 IDE中完成而不必诉诸命令行/make/nmake呢?你能推荐一些小型IDE来帮助我吗?最好的问候 - user109134
1
当然,有很多IDE可以用于这个,只是不包括Visual Studio。试试Code::Blocks(http://www.codeblocks.org/)。 - Matthew Flaschen
4个回答

10

GMan's idea提出了一个好主意,即创建一个“沙盒”项目,这样可以轻松地尝试多文件测试。我称之为“cppTest”。

但是,如果您只想能够编译您打开的任何C或C++文件,只需创建一个简单的“外部工具”。实际上,它并不像它应该那么简单。

首先,创建一个批处理文件,该文件将设置编译器环境并运行编译器。类似以下内容:

@rem - runcl.cmd
@rem     a batch file to drive simple VC9 compiles
#rem
@echo off

set LIBRARIES=kernel32.lib user32.lib advapi32.lib shlwapi.lib oleaut32.lib
set WIN32_WINNT=0x0500

call "%ProgramFiles%\Microsoft Visual Studio 9.0\Common7\Tools\vsvars32.bat"

echo Visual C/C++ 2008 (VC 9.0) Compile...
set CC="%ProgramFiles%\Microsoft Visual Studio 9.0\VC\bin\cl.exe" /Zi /EHsc -D_WIN32_WINNT=%WIN32_WINNT% %1 /link /incremental:no %LIBRARIES%
echo %CC%
%CC%

在“工具/外部工具…”对话框中,添加一个新项目并填写以下字段:
  • 标题:&编译文件
  • 命令:c:\path\to\runcl.cmd
  • 参数:$(ItemPath)
  • 初始目录:$(ItemDir)

  • 勾选“使用输出窗口”框

现在您可以在工具菜单中使用“编译文件”项目来编译当前打开的文件。您甚至可以双击输出窗口中的错误以跳转到出错行。

这种方法有一些限制,其中一些可以通过改进批处理文件或者使用Visual Studio宏(我不太熟悉VS宏)来解决。

  1. 如果您没有保存文件,则编译将针对最近保存的版本运行。在外部工具配置中没有强制保存的选项。
  2. 如果运行该命令时没有活动的C或C++文件,则批处理文件会崩溃。
  3. 批处理文件可能还会在其他许多地方出现混乱。

使用这种批处理文件的好处是,您还可以将其用于帮助将编译器集成到各种编辑器中,这些编辑器允许您调用外部工具,例如UltraEdit、Zeus Editor、EditPad Pro、PSPad、Programmer's Notepad等。

如果你愿意的话,我已经发布了一个批处理文件,我用它将几个编译器集成到像上面提到的编辑器中。这个批处理文件可以处理多个编译器,包括从版本6到版本9的各种MSVC编译器、Digital Mars、MinGW和Comeau编译器(选择使用的编译器是由一个额外的参数选择的)。这个批处理文件相当复杂(不幸的是,任何具有一定复杂性的Windows批处理文件都是如此),但我发现它使得从各种编辑器运行这些东西变得非常简单。我可以快速按下几个我分配给编译器的键,对单个文件进行5个不同编译器的编译,以便轻松测试兼容性。

我对它没有任何承诺,除了我认为它对我的自己很有用 - 如果你也觉得有用,太好了。否则,不要使用...


9

在实际的IDE中,我不认为有可能运行一个小程序,你必须像Matt建议的那样使用命令行。

我对这个问题的解决方案是,在我的电脑上有一个叫做“沙箱”的项目,它只有一个main.cpp文件,我可以在里面随意尝试。

这让我可以在这里和那里尝试一些东西,但我不必一直开始一个新项目。


错过了按下 Ctrl+V,Ctrl+F9 的机会 :) - user109134
3
这样做的缺点是有时候“临时代码”后来可能会变得有用,如果你按照这种方式处理,那么你真正地将其丢弃了。 - Matthew Flaschen
1
我的个人解决方案是创建一个名为“Tests”的文件夹,其中只包含测试应用程序项目,可以是一个小的主函数或更多。这样我就可以为每个测试命名。在MSVC中创建一个简单的控制台程序大约需要2秒钟(+输入项目名称的时间)。 - Klaim

2

有一种方法是建立一个通用项目,例如沙盒、测试或甚至是Hello World,然后添加和删除源文件来改变你想要做的事情。你甚至可以删除旧的源文件,然后添加新的文件以重新开始。这样做快速简便,同时也能够生成已构建的程序。


1
如果你有一个hello.cpp文件,并且希望将其编译成hello.exe文件,而不需要在code::blocks或visual studio中创建项目,可以查看以下内容:https://courses.cs.washington.edu/courses/cse373/99au/unix/g++.html 这是有关如何通过MinGW在Windows上安装g++的指南:http://www.codebind.com/cprogramming/install-mingw-windows-10-gcc/ 然后,您可以通过打开命令提示符,导航到您放置hello.cpp文件的位置并运行命令g++ -o hello hello.cpp来编译单个hello.cpp文件,这应该会在与您的hello.cpp相同的位置生成一个名为“hello.exe”的文件。
请注意,这不是visual studio的一部分,但如果您希望保持简单,这是编译单个.cpp文件的简单方法。

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