设置Windows上的C开发环境

Visual Studio IDE功能强大,使用这个IDE,你不需要考虑环境问题,一切都设置好了。但也正是因为Visual Studio过于强大,有时候在做些小项目或练习的时候,显得过于笨重。基于此,Visual Studio还提供了手工工作的CLI环境,即Tools菜单下的Command Line。

但可不可以不启动Visual Studio,直接进入手工工作的CLI环境呢?可以的。下面就来看看如何设置C的CLI环境。

 

1、任务描述

为了练习 sqlite 数据库的 C API,需要能够手动编辑、编译C代码。其中的样本代码如图1所示。

图1 C样本文件 query.c

 

2、设置传统的命令提示符环境

传统的命令提示符环境就是由 cmd.exe 启动的环境。首先创建一个快捷方式,命名为 C Terminal,如图1所示。

图1 创建快捷方式

其中,Target设置为:C:\Windows\System32\cmd.exe /k "VsDevCmd.bat&&CD %USERPROFILE%",启动目录(Start in)设置为"C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools"。

上述Target中 cmd.exe 所要执行的命令字符串包含了两条命令,一个是 VsDevCmd.bat,这是Visual Studio提供的创建CLI环境的批处理命令文件。另一个是 CD %USERPROFILE%,这条命令的意思是在执行完 VsDevCmd.bat 批处理命令设置好环境之后,将当前目录改变到你的根目录。&&是命令连接符号,cmd.exe在执行多条命令时,命令之间需要使用&&符号连接并用引号括起来。

这样设置之后,点击此快捷方式,启动的 cmd 窗口即为环境就绪的CLI窗口,如图2所示。

图2 环境就绪的CLI窗口

 

环境设置好以后,就可以编译了,为此,写了一个 cc.bat:

CL.exe /I. /Fe%1.exe %1.c sqlite3.c

运行该批处理命令,如下,编译成功。

C:\sqlite>cc.bat query.c

 

3、设置PowerShell环境

自从微软推出PowerShell之后,传统的命令提示符窗口逐渐就被PowerShell所代替。下面就来看看如何设置PowerShell的C开发环境。

Visual Studio在Tools名录下提供了设置PowerShell环境的脚本文件 :Launch-VsDevShell.ps1,只要让PowerShell在启动时执行这个脚本文件即可。

PowerShell 7的根目录位于 <用户根目录>\Documents\PowerShell,在此目录下创建名为 Microsoft.PowerShell_profile.ps1 的脚本文件,内容为:

C:\Program` Files\Microsoft` Visual` Studio\2022\Community\Common7\Tools\Launch-VsDevShell.ps1

这里要注意的是,需要对命令行中的空格进行转义(escape),方法是使用PowerShell的转义字符(`)。

PowerShell在启动时,会自动执行Microsoft.PowerShell_profile.ps1脚本文件,这样就实现了自动设置C环境的目的。

在PowerShell中,同样可以使用如上创建的批处理命令 cc.bat。

 

4、设置Visual Studio Code的编译环境

Visual Studio Code(VS Code)是一个轻量级跨平台的代码编辑器,在上述第2步设置的基础上,再编辑一个任务配置文件,就可以在VS Code中编辑、编译C代码。

点击菜单栏上的 Terminal,再点击 Configure Tasks...,就打开了 tasks.json 文件,如图3所示。

图3 配置任务

 

一个tasks.json的样本如下:

{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: cl.exe build active file",
            "command": "cl.exe",
            "args": [
                "/Zi",
                "/EHsc",
                "/nologo",
                "/I${fileDirname}",
                "/Fe${fileDirname}\\${fileBasenameNoExtension}.exe",
                "${file}",
                "${fileDirname}\\sqlite3.c"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$msCompile"
            ],
            "group": "build",
            "detail": "compiler: cl.exe"
        }
    ]
}
 
这是一个编译 sqlite 程序的任务文件,sqlite3.h、sqlite3.c 与用户文件(如query.c)处于同一目录中,所以需要增加 /I$(fileDirname} 选项,以便编译时包含sqlite3.h。
 
至此,Windows环境下手工C开发环境的设置就完成了。
 
posted @ 2022-08-09 17:42  野峰-WildPeak  阅读(447)  评论(0编辑  收藏  举报