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.ascsudo 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里得到很多有用的信息。

Linux下配置C语言编程环境相关推荐

  1. 实验linux下的编程,实验四 Linux下的C语言编程;

    <实验四 Linux下的C语言编程;>由会员分享,可在线阅读,更多相关<实验四 Linux下的C语言编程;(5页珍藏版)>请在人人文库网上搜索. 1.实验四Linux 下的 C ...

  2. linux下的c语言编程实验4,实验四-Linux下的C语言编程

    实验四Linux 下的 C 语言编程 四.实验内容 本实验要求在LINUX/UNIX环境下用C语言编写三个具体的SHELL命令,基本涉及了LINUX/UNIX文件系统中较为常用的有关文件操作的系统调用 ...

  3. 操作系统实验六:Linux下的C语言编程

    实验六 Linux下的C语言编程 一.实验要求 (1)熟悉Linux环境下C语言应用程序开发的基本过程: (2)熟悉基本库函数的使用: (3)具有初步的应用程序设计能力. 二.实验内容 (1)有三个程 ...

  4. Linux下C语言串口应用编程,Linux下串口C语言编程

    Linux下串口C语言编程 (5页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 串口操作代码#include #include #inclu ...

  5. yum安装ruby_CentOS 7下配置Ruby语言开发环境的方法教程

    本文跟大家分享的是在CentOS 7下配置Ruby语言开发环境的方法教程,分享出来供大家参考学习,下面来看看详细的介绍: 安装Ruby 2.2 CentOS7存储库中的Ruby版本为2.0,但如果需要 ...

  6. 在linux下用c语言编程软件下载,在Linux下进行C语言编程

    在Linux下进行C语言编程 在Linux下进行C语言编程,必然要采用GNU GCC来编译C源代码生成可执行程序. 一.GCC快速入门 Gcc指令的一般格式为:Gcc [选项] 要编译的文件 [选项] ...

  7. linux下c语言读取docx,Linux下的C语言编程.docx

    电子商务09-01 王荣宝 540913120138 Linux下的C语言编程 1 gdb调试和gcc编程综合实例 1.1 新建文件test.c,文件内容如下图所示: List列出程序源代码 本程序作 ...

  8. linux下的C语言编程(总结篇)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 在Linux下面关于C语言的内容其实挺多的.不同的人关注的地方也不一样.关注系统设计的人可能更 ...

  9. step1.day12 Linux下使用C语言编程基础总结

    一:系统准备 1.VMware软件安装,用来在现在操作系统下模拟Linux系统而不必重装系统 2.Linux系统安装,推荐使用Ubuntu14.02版本,较为稳定 注意:安装步骤,选择稍后安装虚拟机, ...

最新文章

  1. ELK出现unassigned_shards查看及删除
  2. 回馈粉丝,包邮送一台全新iPad
  3. python分布式框架有哪些_Python并行分布式框架Celery详解
  4. Java中的ThreadLocal的使用--学习笔记
  5. 关于 Node.js 应用里使用 winston 进行日志记录的最佳实践
  6. [Buzz Today]2012.09.01
  7. JPEG 及MJPEG开发笔记
  8. [图示]抢逼围:项目开发3字经
  9. [HDU1754]I Hate It线段树裸题
  10. python入门容易进阶难_为什么Python入门容易,精通却很难!Python进阶之路!
  11. java毕业生设计资源循环利用计算机源码+系统+mysql+调试部署+lw
  12. pdn阻抗测试_阻抗测试基础(超详细,安捷伦工程师力作)(上篇)
  13. 图解 Python 编程(6) | 条件控制与if语句(附要点速查表·完结)
  14. matlab 开普勒方程,第二章 开普勒方程.ppt
  15. 3.接口测试用例书写
  16. java 吸血鬼数字_java编程思想之吸血鬼数字
  17. 业务知识 - 行业笔记
  18. ButterKnife onclick点击事件没反应
  19. 从零开始之驱动发开、linux驱动(二十五、framebuffer 子系统框架)
  20. 视频教程-项目实战:支持以太坊的MySQL管理系统视频课程-区块链

热门文章

  1. [1032]spark-3.0安装和入门
  2. ASP.NET Web API与Owin OAuth:使用Access Toke调用受保护的API
  3. 「Python条件结构」判断是否能同时被3、5、7整除
  4. 2.4:使用交换机构建简单局域网——交换机的高级管理
  5. Base64转docx的python实现
  6. 可能我也没有想到,我能把写文章这件事因为一个小小的念头而坚持下来!
  7. 23年PMP备考攻略+资料分享
  8. 【数据结构】最小生成树的概念
  9. UE4发布LinuxServer
  10. 庄子 内篇 大宗师第六