ubuntu 下如何编译并运行c程序

本文探讨了程序设计的核心——算法的重要性,并通过Nikiklaus Wirth的公式“数据结构+算法=程序”进行了阐述。此外,还介绍了GCC作为Linux操作系统下的重要编译工具,在多种语言编译中的应用,包括如何使用GCC编译简单的C语言程序。

       

   很久没有看书,发现退化严重,开始恶补。

程序的灵魂—算法

一个程序应包括:

 对数据的描述。在程序中要指定数据的类型和数据的组织形式,即数据结构(data structure)

 对操作的描述。即操作步骤,也就是算法(algorithm)

Nikiklaus Wirth 提出的公式:

  数据结构+算法=程序

     GCC是Linux操作系统下一个非常重要的源代码编译工具,有着许多重要的选项,支持许多不同语言的编译,如C、C++、Ada、Fortran、Objective、Perl、Python、Ruby以及Java等,甚至Linux的许多内核和许多其他自由软件以及开放源码应用程序都是用C语言编写并经gcc编译而成的.

    1.编译单个源文件

代码hello.c

#include <stdio.h>
main()
{
printf("世界,您好!\n");
}

 进行编译

    $gcc -o hello hello.c 或gcc hello.c -o hello

    编译成功完成后,在当前路径下,生成一个名为hello的文件,然后执行

    $./hello 或$./a.out

    在屏幕上,你将会看到打印结果:世界,您好!

    说明:在默认情况下,编译成功完成后,会在当前路径下,生成一个名为a.out的文件,然后执行$./a.out便可打印结果,但通常可以通过选项-o来指定自己的可执行程序名称;

 

转自文章:http://www.cnblogs.com/javadotnet/articles/1918930.html

<think>首先,用户的问题是基于提供的引用,询问在Ubuntu系统上编译运行C语言程序的方法。我需要参考那些引用来构建我的回答。 关键引用总结: - 引用[1]: 描述了在Ubuntu下编写、编译运行"Hello, World!"程序的过程,包括安装GCC编译器。 - 引用[2]: 提到了在Ubuntu和Windows上编译运行C程序,但没有具体细节。 - 引用[3]: 强调了在Ubuntu编译运行的体验,提到了gcc编译器。 - 引用[4]: 详细描述了实验题目,包括编译main1.c和sub1.c,使用gcc命令行和Makefile。 用户的问题焦点是Ubuntu系统上编译运行C语言程序的方法。所以,我应该提取相关步骤。 结构化我的回答: 1. **安装编译器**:引用[1]提到安装GCC:`sudo apt-get install gcc` 2. **编写程序**:使用文本编辑器(如vim)创建C文件。 3. **编译程序**: - 使用gcc命令编译单个文件。 - 对于多个文件(如main.c和sub.c),需要一起编译或链接。 4. **运行程序**:执行编译后的可执行文件。 5. **高级方法**:涉及Makefile(来自引用[4])。 步骤基于引用: - 来自引用[4]: 1. 用gcc编译:`gcc main1.c sub1.c -o output_name` 2. Makefile方式:简化编译过程。 - 通用步骤:编写、编译运行。 回答结构: - 清晰、逐步解释。 - 使用中文,因为系统指令要求。 - 遵循系统级指令:内联数学表达式用$...$,独立公式用$$...$$(但这里可能不需要复杂数学)。 - 添加引用标识如[^1],自然地放在末尾。 - 生成相关问题(指令5)。 生成相关问题: - 相关问题应该基于主题,比如编译优化、错误处理、Makefile细节等。 完整回答结构: 1. 介绍编译运行的基本步骤。 2. 详细步骤: a. 安装GCC。 b. 编写C程序。 c. 编译程序(简单文件和多个文件)。 d. 运行程序。 e. 可选:使用Makefile。 3. 添加引用标识。 4. 列出相关问题。 引用标识: - 引用[1]提到安装GCC和基本过程。 - 引用[4]提供具体编译命令和Makefile。 - 所以,在相关部分末尾添加[^1]或[^4]。 确保内容真实可靠:基于提供的引用,不添加外部知识。 </think>### 在Ubuntu系统上编译运行C语言程序的方法 在Ubuntu系统上编译运行C语言程序是一个基础但重要的过程,涉及安装编译器、编写代码、编译运行几个步骤。以下是基于引用内容的详细指南,我将一步步解释整个过程,确保操作可靠且易于理解。Ubuntu系统默认使用GCC编译器(GNU Compiler Collection),它是一个强大的开源工具链。 #### 1. **安装GCC编译器** - 在Ubuntu中,首先确保GCC已安装。如果未安装,可以使用apt包管理器安装。 - 打开终端(快捷键:Ctrl+Alt+T)。 - 运行命令:`sudo apt-get update && sudo apt-get install gcc`(这会更新软件包列表安装GCC)[^1]。 - 验证安装:输入`gcc --version`,如果显示版本信息(如 `gcc (Ubuntu 11.4.0) 11.4.0`),则表示安装成功[^1]。 #### 2. **编写C语言程序** - 使用文本编辑器创建C源文件。Ubuntu推荐使用vim、nano或gedit。 - 例如,创建一个简单的 "Hello, World!" 程序: - 打开终端,输入 `vim hello.c` 创建文件。 - 在vim中,按 `i` 进入插入模式,输入代码: ```c #include <stdio.h> int main() { printf("Hello, World!\n"); return 0; } ``` - 保存退出:按 `Esc`,然后输入 `:wq`。 - 对于更复杂的程序(如涉及多个文件),创建主程序文件和子程序文件。例如: - `main1.c`(主程序): ```c #include "sub1.h" int main() { int a = 5, b = 3; float result = x2x(a, b); printf("Result: %f\n", result); return 0; } ``` - `sub1.c`(子程序,包含算术函数): ```c float x2x(int a, int b) { // 示例运算:计算 (a*b)/2.0 返回浮点数 return (a * b) / 2.0; } ``` - `sub1.h`(头文件): ```c #ifndef SUB1_H #define SUB1_H float x2x(int a, int b); #endif ``` 这体现了模块化编程,方便代码重用[^4]。 #### 3. **编译程序** - **编译单个文件**: - 在终端中,导航到源文件目录(例如 `cd ~/Documents`)。 - 使用gcc命令编译:`gcc hello.c -o hello`。 - `hello.c` 是源文件,`-o hello` 指定输出可执行文件名为 `hello`。 - 编译成功后,会生成一个可执行文件(如 `hello`)[^1][^4]。 - **编译多个文件**: - 如果程序有多个文件(如 `main1.c` 和 `sub1.c`),需要将它们一起编译。 - 命令为:`gcc main1.c sub1.c -o output_name`(例如 `gcc main1.c sub1.c -o calc`)。 - 编译器会自动处理头文件(如 `sub1.h`)的包含。 - 确保所有文件在同一目录下[^4]。 - **使用Makefile(可选高级方法)**: - 对于大型项目,使用Makefile简化编译过程。 - 创建 `Makefile` 文件(内容示例): ```makefile all: calc calc: main1.c sub1.c gcc main1.c sub1.c -o calc clean: rm -f calc ``` - 在终端运行: - `make`:编译程序(生成 `calc`)。 - `make clean`:清理生成的文件。 - 这提高了效率和可维护性[^4]。 #### 4. **运行程序** - 编译成功后,在终端运行可执行文件: - 输入 `./hello`(对于单个文件)或 `./calc`(对于多个文件)。 - 程序输出:例如 "Hello, World!" 或算术运算结果。 - 如果遇到权限错误(如 "Permission denied"),运行 `chmod +x hello` 添加执行权限。 - 示例输出: ``` Hello, World! ``` 或 ``` Result: 7.500000 ``` 这表明程序运行正常[^1][^3][^4]。 #### 注意事项 - **依赖问题**:如果编译失败(如提示未找到头文件),检查文件路径和语法错误(例如确保 `#include "sub1.h"` 正确)。 - **调试工具**:Ubuntu支持gdb调试器;安装命令:`sudo apt-get install gdb`,然后使用 `gdb ./hello` 调试[^3]。 - **跨平台比较**:在Windows上,可能需要IDE如Dev-C++(引用[2]),但Ubuntu的gcc命令行更轻量高效[^2][^3]。 通过以上步骤,您可以在Ubuntu上高效编译运行C程序。整个过程展示了开源工具链的优势,适合嵌入式系统开发等场景[^1][^3][^4]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值