有没有什么方法可以在 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 个不同的编译器编译单个文件,这样我就可以轻松地测试兼容性。
除了我发现它对我自己的目的有用之外,我不做任何 promise - 如果你也这样做,那就太好了。否则,不要使用它...
https://stackoverflow.com/questions/880803/