C语言之编译运行(c语言编译运行快捷键)
bigegpt 2025-03-25 11:16 17 浏览
一、编写C程序
- 创建源文件
使用文本编辑器(如VS Code、Notepad++、Sublime Text等)创建一个新文件,保存为 .c 后缀的文件,例如 hello.c。 - 编写代码
在文件中输入以下代码(经典的“Hello, World!”程序):
#include
int main() {
printf("Hello, World!\n");
return 0;
}
二、安装编译器
C语言需要编译器将源代码转换为可执行文件。常用的编译器是 GCC(GNU Compiler Collection)。
不同操作系统的安装方法如下:
1. Windows
- 安装MinGW(提供GCC工具链):
- 访问 MinGW官网 下载安装工具。
- 安装时勾选 mingw32-gcc 组件。
- 将MinGW的 bin 目录(如 C:\MinGW\bin)添加到系统环境变量 PATH 中。
- 打开命令提示符,输入 gcc --version 验证是否安装成功。
2. macOS
- 安装Xcode Command Line Tools:
- 打开终端,输入命令:
xcode-select --install
- 确认安装后,输入 gcc --version 验证。
3. Linux
- 大多数Linux系统已预装GCC。
若未安装,在终端输入(以Debian/Ubuntu为例):
sudo apt update && sudo apt install gcc
三、编译C程序
- 打开终端/命令提示符
- Windows:按 Win + R 输入 cmd。
- macOS/Linux:打开“终端”。
- 导航到源代码目录
使用 cd 命令切换到存放 hello.c 的目录。
cd Desktop/C_Projects # 示例:进入桌面上的C_Projects文件夹
- 执行编译命令
输入以下命令编译代码:
gcc hello.c -o hello
- gcc:调用编译器。
- hello.c:源文件名。
- -o hello:指定输出文件名为 hello(Windows会自动添加 .exe 后缀)。
编译成功:生成可执行文件 hello(或 hello.exe)。
编译失败:终端会显示错误信息,需根据提示修改代码。
四、运行程序
- 在终端中运行
- Windows:
hello.exe
或直接双击生成的 hello.exe 文件。
- macOS/Linux:
./hello
2.查看输出
终端会显示:
Hello, World!
五、常见问题及解决方法
1. 编译器未找到(如 gcc 命令无效)
- 原因:未正确安装GCC或未配置环境变量。
- 解决:
- 重新安装编译器(参考第二步)。
- 检查环境变量是否包含编译器的 bin 目录。
2. 代码语法错误
- 示例错误:
hello.c: In function 'main':
hello.c:5:5: error: expected ';' before 'return'
- 解决:根据提示的行号(如第5行)检查代码,修正语法错误(如漏写分号)。
3. 中文乱码(Windows)
- 原因:Windows终端默认编码为GBK,而代码文件保存为UTF-8。
- 解决:
- 在代码文件的开头添加:
#pragma execution_character_set("utf-8")
- 或改用支持UTF-8的终端(如VS Code内置终端)。
六、使用IDE简化流程(可选)
- 推荐工具:
- Visual Studio Code(安装C/C++扩展)。
- Code::Blocks、Dev-C++(适合Windows初学者)。
- Xcode(macOS)。
- 操作流程:
- 在IDE中新建C文件,编写代码。
- 点击“编译并运行”按钮(通常为 图标)。
- IDE会自动完成编译和运行,输出结果显示在控制台。
七、总结步骤
- 编写代码 → 保存为 .c 文件。
- 安装编译器(GCC)。
- 编译代码:gcc 文件名.c -o 输出名。
- 运行程序:根据操作系统执行生成的可执行文件。
相关推荐
- 或者这些Joplin插件也可以帮助你的笔记应用再一次强大
-
写在前面距离上次分享《搭建私有全平台多端同步笔记,群晖NAS自建JoplinServer服务》已过去一段时间,大家是否开始使用起来了呢?如果你和我一样已经使用过Joplin有一段时间了,那或许你也会...
- Three.JS教程4 threejs中的辅助类
-
一、辅助类简介Three.js提供了一些辅助类(Helpers)以帮助我们更容易地调试、可视化场景中的元素。ArrowHelepr:创建箭头辅助器;AxisHelper:创建坐标轴辅助器;BoxH...
- 第2章 还记得点、线、面吗(二)(第二章还能敲钟吗)
-
glbgltf模型(webvrmodel)-gltf模型下载定制,glb模型下载定制,三维项目电商网站在线三维展示,usdz格式,vr模型网,网页VR模型下载,三维模型下载,webgl网页模型下载我...
- 如何检查Linux系统硬件信息?从CPU到显卡,一网打尽!
-
你可能会问:“我为什么要关心硬件信息?”答案很简单:硬件是Linux系统的根基,了解它可以帮你解决很多实际问题。比如:性能调优:知道CPU核心数和内存大小,才能更好地调整程序运行参数。故障排查:系统卡...
- SpriteJS:图形库造轮子的那些事儿
-
从2017年到2020年,我花了大约4年的时间,从零到一,实现了一个可切换WebGL和Canvas2D渲染的,跨平台支持浏览器、SSR、小程序,基于DOM结构和支持响应式的,高...
- 平时积累的FPGA知识点(6)(fpga经典应用100例)
-
平时在FPGA群聊等积累的FPGA知识点,第六期:1万兆网接口,发三十万包,会出现掉几包的情况,为什么?原因:没做时钟约束,万兆网接口的实现,本质上都是高速serdes,用IP的话,IP会自带约束。...
- 芯片逻辑调度框架设计 都需要那些那些软件工具
-
设计芯片逻辑调度框架通常需要使用以下软件工具:1.逻辑设计工具:例如Vivado、Quartus、SynopsysDesignCompiler等,用于设计和实现逻辑电路。2.仿真工具:例如Mo...
- ZYNQ与DSP之间EMIF16通信(正点原子领航者zynq之fpga开发指南v3)
-
本文主要介绍说明XQ6657Z35-EVM高速数据处理评估板ZYNQ与DSP之间EMIF16通信的功能、使用步骤以及各个例程的运行效果。[基于TIKeyStone架构C6000系列TMS320C6...
- 好课推荐:从零开始大战FPGA(从零开始的冒险4399)
-
从零开始大战FPGA引子:本课程为“从零开始大战FPGA”系列课程的基础篇。课程通俗易懂、逻辑性强、示例丰富,课程中尤其强调在设计过程中对“时序”和“逻辑”的把控,以及硬件描述语言与硬件电路相对应的“...
- 业界第一个真正意义上开源100 Gbps NIC Corundum介绍
-
来源:内容由「网络交换FPGA」编译自「FCCM2020」,谢谢。FCCM2020在5月4日开始线上举行,对外免费。我们有幸聆听了其中一个有关100G开源NIC的介绍,我们对该文章进行了翻译,并对其中...
- 高层次综合:解锁FPGA广阔应用的最后一块拼图
-
我们为什么需要高层次综合高层次综合(High-levelSynthesis)简称HLS,指的是将高层次语言描述的逻辑结构,自动转换成低抽象级语言描述的电路模型的过程。所谓的高层次语言,包括C、C++...
- Xilinx文档编号及其内容索引(部分)
-
Xilinx文档的数量非常多。即使全职从事FPGA相关工作,没有几年时间不可能对器件特性、应用、注意事项等等有较为全面的了解。本文记录了我自使用Xilinx系列FPGA以来或精读、或翻阅、或查询过的文...
- Xilinx Vivado联合Modelsim软件仿真
-
引言:Xilinx公司Vivado开发软件自带仿真工具,可以实现一般性能的FPGA软件仿真测试,其测试执行效率以及性能都不如第三方专用仿真软件Modelsim强。本文我们介绍下如何进行Vivado20...
- 体育动画直播是怎么做出来的?从数据到虚拟赛场的科技魔法!
-
你是否见过这样的比赛直播?没有真实球员,却能看梅西带球突破?足球比赛变成动画版,但数据100%真实?电竞比赛用虚拟形象直播,选手操作实时同步?这就是体育动画直播——一种融合实时数据、游戏引擎和AI的...
- Dialogue between CPC and political parties of neighboring countries held in Beijing
-
BEIJING,May26(Xinhua)--TheCommunistPartyofChina(CPC)inDialoguewithPoliticalPartiesof...
- 一周热门
- 最近发表
- 标签列表
-
- mybatiscollection (79)
- mqtt服务器 (88)
- keyerror (78)
- c#map (65)
- resize函数 (64)
- xftp6 (83)
- bt搜索 (75)
- c#var (76)
- mybatis大于等于 (64)
- xcode-select (66)
- mysql授权 (74)
- 下载测试 (70)
- linuxlink (65)
- pythonwget (67)
- androidinclude (65)
- libcrypto.so (74)
- logstashinput (65)
- hadoop端口 (65)
- vue阻止冒泡 (67)
- jquery跨域 (68)
- php写入文件 (73)
- kafkatools (66)
- mysql导出数据库 (66)
- jquery鼠标移入移出 (71)
- 取小数点后两位的函数 (73)