使用VS 2017,您可以选择File->Open->Open Folder
在解决方案资源管理器中打开所有源,而无需创建项目。从理论上讲,这将允许您使用目录中的任何小型单源文件进行编译,调试等,而无需为每个文件设置项目。但是,我还没有找到一种方法来向 Solution Explorer 上下文菜单添加一个有效的'Compile'
选项,该菜单将调用编译器来构建单个文件。
Microsoft提供了几个旨在解释该过程的参考页面:
在问题VS2017 'Open Folder'-project fails to generate CMake cache中已经切及了这一点,尽管仅限于cmake
并最终成为提问者试图遵循CMake support in Visual Studio的错字
我遇到的问题是当我向tasks.vs.json
添加任务来编译目录中的C文件时,VS会在消息窗口中响应{{1}的错误}。我尝试使用的cl cannot be found as an internal or external command
任务是:
tasks.vs.json
{
"version": "0.2.1",
"tasks": [
{
"taskName": "Echo filename",
"appliesTo": "*.c",
"type": "command",
"command": "${env.COMSPEC}",
"args": ["cl /nologo /W3 /wd4996 /Ox /Foobj/ /Febin/${fileBasename} /Tc ${file}"]
},
{
... (normal default entries for launch...)
}
]
}
和msvc_x86
的继承环境,适用于" Debug"和"发布"默认情况下在msvc-x64
内的目录中正确创建。
我试图通过CppProperties.json
为VS命令提示符创建一个外部工具,并使用Tools->External Tools... Add
启动cmd.exe
(这会打开所需的开发人员命令行),但是没有提供一个外部命令,传递编译字符串以从Solutions Explorer列表中编译源文件。
我只想使用以下命令行在Solution Explorer列表中选择的文件上调用/k "C:\Program Files (x86)\Microsoft Visual Studio 17.0\Common7\Tools\VsDevCmd.bat"
编译器:
cl.exe
我可能正在阅读文档错误,但是如何在cl /nologo /W3 /wd4996 /Ox /Foobj/ /Febin/${fileBasename} /Tc ${file}
(或其他地方)中创建一个任务条目,它将提供一个简单的上下文菜单条目,以允许编译以{{1}打开的C源代码}}?
答案 0 :(得分:1)
根据Customize build and debug tasks for "Open Folder" development,这有效。
{
"version": "0.2.1",
"tasks": [
{
"taskName": "cl-task",
"appliesTo": "*.c",
"type": "command",
"command": "cl",
"args": [ "${file}" ],
"envVars": {
"VSCMD_START_DIR": "\"${workspaceRoot}\""
}
}
]
}
CppProperties.json
提供有关浏览的信息,即IntelliSense行为。
要指定环境变量,请改用envVars
。您可以在根文件夹中创建文件VSWorkspaceSettings.json
并添加
{
"envVars": { "PATH": "%PATH%;C:\\Users\\zhaofeng-shu33\\Anaconda3\\Scripts" }
}
然后以下任务将起作用。它只是为程序conda
输出帮助消息,该程序是位于文件夹Scripts
内的可执行文件,不会添加到全局环境变量中。
{
"taskName": "conda-task",
"appliesTo": "*.c",
"type": "command",
"command": "${env.COMSPEC}",
"args": [ "conda --help" ]
}