Linux下配置C语言编程环境

1. 安装vscode及其环境

Linux与C语言紧密相关,在Linux下写C代码更是一种享受。工欲善其事,必先利其器,舒适的开发环境非常重要。Linux下有编译器gcc和调试器gdb,还有编辑器vim。但vim的使用颇有难度,我们选择更加用户友好的VS Code进行编程,并使用扩展搭建一个完整的编程环境。

1.1 Debian类系统

Debian及其分支系统,如果要安装vscode,非常容易,仅仅需要几行代码。

sudo apt update
sudo apt install software-properties-common apt-transport-https curl
curl -sSL https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main"
sudo apt update
sudo apt install code

下面是配置c语言环境

sudo apt-get update
sudo apt-get install gcc
sudo apt-get install g++
sudo apt-get install gdb

1.2 redHat/Fedora/CentOS

   sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
   sudo sh -c 'echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ngpgcheck=1\ngpgkey=ht    tps://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/vscode.repo'
   dnf check-update
sudo dnf install code

下面是配置c语言环境

su root
yum install cpp
yum install binutils
yum install glibc
yum install glibc-kernheaders
yum install glibc-common
yum install glibc-devel
yum install gcc
yum install make
yum install kernel
yum install kernel-level

1.3 Arch类系统

Arch Linux需要先开启AUR仓库来进行安装。首先要编辑 /etc/pacman.conf 里面的内容,在最下面添加如下代码

[archlinuxcn]
SigLevel = Never
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch

然后进行系统更新和安装操作

sudo pacman -Syyu
sudo pacman -S yay
yay -S visual-studio-code-bin

下面是配置c语言环境

sudo pacman -S gcc glibc

2.配置vscode

2.1 下载对应的插件

既然要配置vscode,我们必须要下载相应的插件才可以编写代码

1.C++ Intellisense		#语法静态检测
2.C/C++		#函数与头文件的跳转需要这个插件的支持
3.Code Runner		#可以直接运行单个cpp文件
4.C/C++ GNU Global		#使用GNU Global为C/C++提供智能感知
5.Chinese (Simplified) Language Pack for Visual Studio Code		#汉化包

安装完成这些插件之后,你需要重启你的电脑。

2.2 配置文件

vscode需要自己配置,下面就说一下配置文件怎么写。首先vscode在c语言环境需要配置3个文件。

tasks.json:构建可执行文件,即编译
launch.json:启动调试程序
settings.json:针对当前工作空间的VS Code设置

那么这些文件怎么使用?下面就来交给大家。

首先你需要创建一个文件夹 ,然后用vscode打开它。你需要新建3个json文件,他们分别是

1.tasks.json
2.launch.json
3.settings.json

首先是tasks.json里面的内容

{
	"version": "2.0.0",
	"tasks": [
		{
			"type": "shell",
			"label": "C/C++: gcc build active file",
			"command": "/usr/bin/gcc",
			"args": [
				"-g",
				"${file}",
				"-o",
				"${fileDirname}/${fileBasenameNoExtension}"
			],
			"options": {
				"cwd": "${workspaceFolder}"
			},
			"problemMatcher": [
				"$gcc"
			],
			"group": {
				"kind": "build",
				"isDefault": true
			}
		}
	]
}

version:配置文件格式的版本号,多年不变,无需关心
type:可选’process’或’shell’,决定构建任务作为单独进程还是一条shell命令启动。如果为’shell’,则可以可以使用Linux的shell扩展
label:构建任务的名字,也是任务标识
command:构建任务使用的命令,即调用编译器的命令,如’gcc’
args:传递给command的参数,即gcc的选项
-g:包含调试信息,用于gdb调试
{file}:需要编译的文件,此处表示当前文件 -o:指定可执行文件的路径和名字,即后面的'file:需要编译的文件,此处表示当前文件−o:指定可执行文件的路径和名字,即后面的′{fileDirname}/${fileBasenameNoExtension}'参数
cwd:构建命令执行时的工作目录,和相对位置的查找与文件生成有关
problemMatcher:使用正则表达式检查源文件的错误,配置语法比较复杂,一般也用不到。如不需要可以删掉这条配置
isDefault:是否作为默认构建配置
默认生成的配置文件已经可以进行编译了,我们只需要根据个人喜好修改某些参数的值,达到想要的效果。

下面是launch.json里面的内容

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "gcc - Build and debug active file",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "C/C++: gcc build active file",
            "miDebuggerPath": "/usr/bin/gdb"
        }
    ]
}

version:配置文件格式的版本号,无需关心
name:调试任务的名称,如果有多个调试任务,可以用于标识
type:调试类型,只能填’cppdbg’
request:可选’launch’或’attach’,决定调试的程序作为独立进程还是附加到其他进程启动
program:目标程序,与’tasks.json’中输出的程序对应
args:传递给目标程序的参数
stopAtEntry:是否在入口处停止,相当于在’main’函数第一行加了个断点,一般选’false’
cwd:目标程序的工作目录,与相对位置文件的读写有关
environment:传递给目标程序的环境变量
externalConsole:是否使用外部控制台,如果为’true’,则弹出一个新窗口运行目标程序,并在程序结束后立刻关闭
MIMode:调试器,可选’gdb’或’lldb’,本例中选择’gdb’
setupCommands:gdb的设置命令,无需改动,无需关心
preLaunchTask:在调试前预先进行的任务,通过名字标识,这里填在’tasks.json’中配置好的构建任务
miDebuggerPath:调试器的路径,如果没有设置,则在环境变量里寻找MIMode设置的程序

最后是settings.json里面的内容(注意,这个配置文件请根据个人喜好进行调整!!!)

{
    "files.associations": {
        "tidl_alg_int.h": "c",
        "limits": "c"
    }
}
这个配置文件可以根据自身去进行调整,并不是一定要这样配置!

4.写在最后


本文仅介绍C编程环境的配置,对于C++请自行探索。
gcc默认链接标准C库’libc’,但不链接其他库,如果要使用数学库’libm’,除了需要在源文件里#include <math.h>,还需要在编译选项里加入’-lm’
如果了解一些gcc参数,可以在’task’的shell里得到很多有用的信息。

  • 3
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值