C语言 | Linux下编译C程序的几种方法

1024G 嵌入式资源大放送!包括但不限于C/C++、单片机、Linux等。关注微信公众号【嵌入式大杂烩】,回复1024,即可免费获取!

Windows下常用IDE来编译,Linux下直接使用gcc来编译,编译过程是Linux嵌入式编程的基础,也是嵌入式高频基础面试问题。

一、命令行编译及各个细分编译过程

hello.c示例代码:

#include <stdio.h>

int main(void)
{ 
 printf("Hello world\n");
 return 0;
}

编译:

gcc hello.c -o hello

如有必要,还需回答出细分的几个步骤:

gcc -E hello.c -o hello.i  # 预处理阶段
gcc -S hello.i -o hello.s  # 编译阶段
gcc -c hello.s -o hello.o  # 汇编阶段
gcc hello.o -o hello       # 链接阶段

具体细节可查往期笔记:《C程序编译过程》

二、借助make来编译

少量文件时可以使用上面方法编译。源码文件较多时,可借用make工具。make通过解析Makefile文件来执行一些gcc命令进行编译。

首先得创建一个Makefile文件,如:

hello:hello.c
        gcc hello.c -o hello

编译运行:

上面更细分编译过程的Makefile文件如下:

关于make及Makefile更多内容可查阅:

【Linux笔记】make工程管理工具(一)

【Linux笔记】make工程管理工具(二)

三、借助CMake生成Makefile

实际开发很少会像上面一样自己编写Makefile文件,可借助cmake工具来生成。

CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。

1、命令行操作

首先输入cmake --version命令查看cmake版本,若还没安装则执行如下命令安装:

sudo apt install cmake

下面开始实验演示。我们的cmake_test文件夹下有一个hello.c文件,在同文件夹下创建一个 CMakeLists.txt 文件:

输入如下内容:

cmake_minimum_required (VERSION 3.10.2)
project (cmake_test)
add_executable(cmake_test hello.c)

然后在cmake_test目录下依次输入如下命令生成Makefile文件:

mkdir build  # 创建build文件夹
cd build     # 进入build文件夹
cmake ../    # 在cmake_test文件夹下生成Makefile

执行结果如下:

关于CMakeLists.txt文件具体语法感兴趣的朋友可自行查阅资料进行学习。

2、使用cmake-gui

上述是在命令行下使用cmake生成Makefile进行进行编译的方法。我们也可以使用图形化界面来生成Makefile文件。cmake-gui是cmake的一个图形化工具。下面依旧以实例作为演示。

我们把上一小节的CMakeLists.txthello.c文件放入新创建的文件夹cmake-gui_test中:

在终端输入 cmake-gui 命令启动cmake-gu图形化工具。若未安装可输入如下命令进行安装:

sudo apt install cmake-qt-gui

如:

启动cmake-gui

查看cmake-gui_test文件夹:

编译运行:

以上分享了一些编译的过程及方法,都是基础内容,需要熟练掌握。如果觉得文章对你有帮助,欢迎转发。


猜你喜欢

干货 | 嵌入式必备技能之Git的使用

嵌入式系统软件架构设计

Linux下应用开发基础

【Linux笔记】Pinctrl子系统与GPIO子系统

Linux下能编译成功,而Windows下编译不过?

1024G 嵌入式资源大放送!包括但不限于C/C++、单片机、Linux等。关注微信公众号【嵌入式大杂烩】,回复1024,即可免费获取!

### 回答1: 嵌入式Linux C语言应用程序设计是指在嵌入式设备上使用C语言编写应用程序,以实现特定功能的过程。华清远见培训PDF是一种培训资料,用于指导学习如何进行嵌入式Linux C语言应用程序设计的相关技术。 在嵌入式Linux C语言应用程序设计中,我们需要了解Linux操作系统的基本概念和原理,以及嵌入式系统的特点和应用场景。同时,我们也需要掌握C语言的基本语法和常用的编程技巧。 这门培训课程的目标是教授学员如何使用C语言开发嵌入式应用程序,并深入理解Linux系统的底层原理。培训材料以PDF形式提供,方便学员在自己的电脑上随时学习和参考。 在课程中,我们将学习如何利用Linux的系统调用和API来开发应用程序,如文件操作、进程管理、网络通信等。同时,我们也将学习如何进行硬件编程,与设备进行交互,如GPIO控制、串口通信等。 除了理论学习,这门培训将通过一些实践项目,帮助学员更好地掌握所学知识。学院将提供实验环境和开发板,供学员进行实践操作。通过这些实践项目,学员可以加深对嵌入式Linux C语言应用程序设计的理解,并提高自己的编程能力。 总而言之,嵌入式Linux C语言应用程序设计华清远见培训PDF为学员提供了学习嵌入式开发的理论知识和实践项目,帮助学员掌握如何用C语言编写嵌入式应用程序,并更好地理解Linux系统的工作原理和特点。这对于从事嵌入式开发的人员来说,是一门非常有价值的课程。 ### 回答2: 华清远见培训提供了一门关于嵌入式Linux C语言应用程序设计的PDF教程。这门教程专注于嵌入式Linux系统的C语言编程,旨在帮助学员掌握在嵌入式设备上开发应用程序的技能。 教程内容主要包括以下几个方面: 1. 嵌入式系统概述:介绍了嵌入式系统的基本概念和特点,以及嵌入式Linux系统的结构和运行环境。 2. Linux内核编程:讲解了如何进行Linux内核的配置和编译,以及如何开发内核模块和驱动程序。 3. 嵌入式应用程序开发:涵盖了Linux下的C语言开发工具链的使用,包括编译、调试和测试等方面的内容。同时,还介绍了常用的嵌入式开发库和函数,以及如何进行文件系统的管理和操作。 4. 嵌入式设备的外设驱动开发:详细讲解了如何开发各种外设的驱动程序,包括串口、SPI、I2C等接口的使用和操作。 5. 实际项目案例:通过一些实际的嵌入式项目案例,帮助学员将所学知识运用到实际的应用中。 这门教程适合已经具备一定编程基础的学员,尤其是对嵌入式系统和Linux有一定了解的人群。通过学习这门课程,学员将能够掌握嵌入式Linux系统的应用程序设计和开发技巧,提高自己在嵌入式领域的竞争力。 ### 回答3: 《嵌入式Linux C语言应用程序设计》是华清远见培训机构提供的一门培训课程,主要面向对嵌入式Linux系统开发有兴趣的学习者。 嵌入式Linux是一种嵌入式操作系统,它是将Linux操作系统适配到嵌入式设备中的一种实现方式。嵌入式系统是一种专门为具体应用设计的计算机系统,通常它具有小型化、低功耗、实时性要求等特点。而嵌入式Linux作为一种开源操作系统,具有稳定性强、适应性广等优点,因此在嵌入式设备的开发中得到了广泛应用。 C语言作为一种常用的编程语言,在嵌入式系统开发中也是广泛使用的工具。学习《嵌入式Linux C语言应用程序设计》课程可以帮助学习者掌握在嵌入式Linux环境下进行C语言程序设计的技能。课程内容包括嵌入式Linux系统的搭建与配置、嵌入式设备的驱动程序编写、应用程序的开发等方面的知识。 在课程中,学习者将通过理论学习和实践操作相结合的方式,了解嵌入式Linux系统的基本原理和运行机制,并学习如何使用C语言进行嵌入式系统的开发。学习者将掌握Linux系统的搭建与配置方法,了解嵌入式设备的驱动程序开发流程,并学会使用C语言进行应用程序的编写。通过实际操作,学习者能够熟悉开发工具的使用,掌握调试技巧,提高代码质量和效率。 通过学习《嵌入式Linux C语言应用程序设计》课程,学习者能够全面了解嵌入式Linux系统的开发流程和技术要点,掌握驱动程序开发和应用程序编写的基本技能,为以后从事嵌入式Linux系统开发工作打下坚实的基础。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式大杂烩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值