有没有一种方法可以在Visual Studio中构建/运行小型C++程序而不创建项目?
例如,如果我有一个文件hello.cpp
,我能否在不使用项目的情况下将其编译为hello.exe
?
有没有一种方法可以在Visual Studio中构建/运行小型C++程序而不创建项目?
例如,如果我有一个文件hello.cpp
,我能否在不使用项目的情况下将其编译为hello.exe
?
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宏)来解决。
使用这种批处理文件的好处是,您还可以将其用于帮助将编译器集成到各种编辑器中,这些编辑器允许您调用外部工具,例如UltraEdit、Zeus Editor、EditPad Pro、PSPad、Programmer's Notepad等。
如果你愿意的话,我已经发布了一个批处理文件,我用它将几个编译器集成到像上面提到的编辑器中。这个批处理文件可以处理多个编译器,包括从版本6到版本9的各种MSVC编译器、Digital Mars、MinGW和Comeau编译器(选择使用的编译器是由一个额外的参数选择的)。这个批处理文件相当复杂(不幸的是,任何具有一定复杂性的Windows批处理文件都是如此),但我发现它使得从各种编辑器运行这些东西变得非常简单。我可以快速按下几个我分配给编译器的键,对单个文件进行5个不同编译器的编译,以便轻松测试兼容性。我对它没有任何承诺,除了我认为它对我的自己很有用 - 如果你也觉得有用,太好了。否则,不要使用...
在实际的IDE中,我不认为有可能运行一个小程序,你必须像Matt建议的那样使用命令行。
我对这个问题的解决方案是,在我的电脑上有一个叫做“沙箱”的项目,它只有一个main.cpp文件,我可以在里面随意尝试。
这让我可以在这里和那里尝试一些东西,但我不必一直开始一个新项目。
有一种方法是建立一个通用项目,例如沙盒、测试或甚至是Hello World,然后添加和删除源文件来改变你想要做的事情。你甚至可以删除旧的源文件,然后添加新的文件以重新开始。这样做快速简便,同时也能够生成已构建的程序。
g++ -o hello hello.cpp
来编译单个hello.cpp文件,这应该会在与您的hello.cpp相同的位置生成一个名为“hello.exe”的文件。