如何在 Linux 环境下 运行 C 语言项目?
Posted TeamCode
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在 Linux 环境下 运行 C 语言项目?相关的知识,希望对你有一定的参考价值。
TLDR;
Linux 云端编辑器
使用 WSL 运行
先上最简单的方法:直接使用 Linux 系统的云端编辑器自动配置环境,然后编译。操作起来没有什么技术难度,最简单、最快捷的方法。
以 Lightly C 语言在线编译器为例,开始使用后直接新建一个 C 语言项目就可以开始在线写代码。如果项目代码已经写好了,也可以直接从客户端上传导入。
进入编程界面后,可以在下方的【终端】栏中输入命令,分别输入 uname -a
及 clang --version
查看 C 语言在线编译器 的系统及编译器信息。
编写完代码后,直接点击右上角的 运行
按钮就可以在线编译 C 语言项目了。
除了使用一键运行的方法外,你同样也可以通过终端命令行输入 clang main.c
,在 C 语言在线编译器中将项目导出为 a.out 文件。然后,再输入 ./a.out
在终端运行。注:.out
后缀的文件是 Linux 系统的可执行文件,与 Windows 系统下的 .exe
文件类似。
编译 C 语言程序显然是学习 C 语言时的一门必修课,但初学 C 语言编程的时候,其实并没有必要把大力气花在环境配置上,而是更专注于编写代码、算法等更重要的部分。
很多同学在学习编程的时候,容易落入所谓的专业性、技术正确甚至是逼格这样的思维陷阱里,在安装系统、配置环境、选择编辑器、安装编译器等步骤下了大量功夫,结果还没真正开始学编程就耗尽了心力,解锁了从入门到放弃的成就。
大家在学习编程的过程中其实可以不必耻于选择更简单、时效更大的入门方式,借助 C 语言在线编译器等已有的工具直接从最重要的语法、算法、实操项目开始下手,然后再慢慢从这段学习过程中,一点一点地学习其中的系统、软硬件知识,而不至于虎头蛇尾。
回到正题。
C 语言在计算机科学的各类编程语言中一直具有相当高的地位,虽然后起的 Python 在数据科学、机器学习等方面已逐渐占据雄风,但这丝毫不影响曾经写出 Windows、MacOS、Linux 等我们现在使用的计算机系统,甚至 Python 的主要实施方式也是由 C 语言编写的。
作为高级语言,编译 C 语言的过程基本上是这样的:
在前面介绍的 C 语言在线编译器一键运行的方法中,这个编译过程并不会完全体现,看起来更像是“源代码 > 编译器 > 可执行文件”这样的过程。学会编程以后,编译流程自然是绕不开的知识点,但大家也会更容易明白程序与终端之间的交互,同时也更容易理解这几个流程之间的关系。
Windows Subsystem for Linux (WSL)
适用于 Linux 的 Windows 子系统(Windows Subsystem for Linux, WSL)可以让开发者在 GNU/Linux 环境下运行项目,而免去双系统、虚拟机等设置。在 WSL 下,你可以选择自己想要的 GNU/Linux 版本,然后借助 vim、emacs 等工具运行 javascript、Python、C/C++、Rust、Go 等不同的编程语言。WSL 也可以让用户类 Unix 命令行下启用 Windows 应用,同时在 Windows 系统下启动 GNU/Linux 应用。
什么是 GNU?
GNU 是一个自由的操作系统,其内容软件完全以 GPL 方式发布。这个操作系统是 GNU 计划的主要目标,名称来自 GNUs Not Unix! 的递归缩写,因为 GNU 的设计类似 Unix,但它不包含具著作权的 Unix 代码。—— 来源维基百科
WSL 的安装方式可以直接查看微软的官方安装文档:安装 WSL | Microsoft Docs
安装
- 安装好 WSL 后,安装Visual Studio Code 并在应用商店下载C/C++ 插件。
- 运行 WSL 并输入以下命令,安装 C 语言编译器。如果需要安装 C++ 编译器或调试工具,还可以将
gcc
替换为g++
(C++ 编译器)或gdb
(调试器)。
sudo apt-get update
sudo apt install gcc
sudo apt-get install build-essential gdb
创建项目文件
在 WSL 中创建项目文件夹 projects
,然后再创建子文件夹 helloworld
。除此之外,我们还需要再 Windows 下创建一个名为 helloworld
的文件夹。
mkdir projects
cd projects
mkdir helloworld
配置 VS Code
在 VS Code 中,同时按下 Ctrl+Shift+P
后输入 C/C++
,并选择 Edit Configurations (UI)
。之后,我们需要把 Compiler path
改为 /usr/bin/gcc
并把 IntelliSense mode
改为 gcc-x64
。
"configurations": [
"name": "Win32",
"includePath": [
"$workspaceFolder/**"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"compilerPath": "/usr/bin/gcc",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "gcc-x64"
],
"version": 4
在 VS Code 转入 View > Command Palette > Configure Default Build Task > Create tasks.json file from template > Others
,在弹出的 tasks.json
中粘贴下面的内容并把 <linux user name>
替换为自己的 Linux 用户名。
"version": "2.0.0",
"windows":
"options":
"shell":
"executable": "bash.exe",
"args": ["-c"]
,
"tasks": [
"label": "build on WSL",
"type": "shell",
"command": "g++",
"args": [
"-g",
"-o",
"/home/<linux user name>/projects/helloworld/helloworld.out",
"$relativeFileDirname/$fileBasename"
],
"group":
"kind": "build",
"isDefault": true
,
"problemMatcher": [
"$gcc"
]
,
"label": "run on WSL",
"type": "shell",
"command": "/home/<linux user name>/projects/helloworld/helloworld.out",
"group":
"kind": "build",
"isDefault": true
,
"problemMatcher": [
"$gcc"
]
]
Build on WSL 会编译项目并导出可执行的 helloworld.out
文件,而 run on WSL
则会运行已导出的可执行文件。
若要进行调试,大家可以在 json 中创建 launch.json
文件,然后复制粘贴下方的代码并替换 <linux username>
及 <windows username>
。
"version": "0.2.0",
"configurations": [
"name": "(gdb) Launch",
"preLaunchTask": "build on WSL",
"type": "cppdbg",
"request": "launch",
"program": "/home/<linux username>/projects/helloworld/helloworld.out",
"args": [""],
"stopAtEntry": true,
"cwd": "/home/<linux username>/projects/helloworld/",
"environment": [],
"externalConsole": true,
"windows":
"MIMode": "gdb",
"miDebuggerPath": "/usr/bin/gdb",
"setupCommands": [
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
]
,
"pipeTransport":
"pipeCwd": "",
"pipeProgram": "c:\\\\windows\\\\sysnative\\\\bash.exe",
"pipeArgs": ["-c"],
"debuggerPath": "/usr/bin/gdb"
,
"sourceFileMap":
"/mnt/c": "$env:systemdrive/",
"/usr": "C:\\\\Users\\\\<windows username>\\\\AppData\\\\Local\\\\Packages\\\\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\\\\LocalState\\\\rootfs\\\\usr\\\\"
]
添加源代码
在之前先建好的 helloworld
中先创建 helloworld.cpp
或 helloworld.c
文件,然后随意编写一个简单的代码并保存:
#include<stdio.h>
int main()
printf("Hello world");
return 0;
构建并运行项目
使用 WSL 中安装的 gcc 并按下 Ctrl-Shift-B > build on WSL
构建项目,然后再通过 Ctrl-Shift-B > run on WSL
运行 /home/<linux username>/projects/helloworld/helloworld.out
就完成了。
> Executing task: /home/<linux username>/projects/helloworld/helloworld.out <
Hello world
Terminal will be reused by tasks, press any key to close it.
以上是关于如何在 Linux 环境下 运行 C 语言项目?的主要内容,如果未能解决你的问题,请参考以下文章