正点原子嵌入式linux驱动开发——LinuxC编程入门

本章主要使用Ubuntu自带的vi编辑器来编写C语言代码。
对基础知识不感兴趣的读者可以查阅并使用VSCcode等编辑器。
首先,创建一个名为“C_Program”的文件夹来管理所有代码。
每次编写的代码都保存在“C_Program”文件夹下的子文件夹中,以便于管理。
在“/etc/vim/vimrc”文件中,将制表符设置为4个空格,并在文件的最后两行添加相应的代码来启用行号显示。
设置完成后,V编辑器会显示“HelloWorld!”它用于编写经典代码:创建名为“main.c”的文件,内容如下:使用“cat”命令查看内容如图所示。
编译代码。
Ubuntu下的C语言编译器是GCC。
只需安装“构建所需”包即可。
安装完成后使用命令查看如图。
安装成功后,GCC编译器版本为7.5.0,适用于x86架构CPU。
对于ARM架构,必须使用ARM的GCC编译器,即交叉编译。
请注意,GCC编译器对于不同的体系结构是不同的。
使用gcc编译器编译“main.c”文件。
”,如图。
可执行文件可以自定义,使用gcc命令时,可以使用“-o”指定文件名,例如“main.c”,编译后会生成一个名为将创建“main”,如图所示,gcc编译命令的格式如下,主要选项如下:编写示例代码以显示GCC错误警告:第8行分号;编译完成后,GCC会发出错误信息。
GCC编译过程包括预处理、链接、链接等过程,使用make命令进行编译,并通过makefile指定编译哪些源代码文件。
这与Linux下广泛使用的GCC编译器相同。
,这样你就可以编写自己的Makefile要指定项目中要包含的源代码文件和依赖项,请在命令行中输入“makefile”和命令。
它执行更新。
总之,Makefile中的规则定义了目标文件及其依赖文件,命令执行更新。
Makefile的“最终目标”是Makefile中第一条规则的目标。
Makefile变量使用“==”进行变量赋值。
模式规则用于编译以特定扩展名结尾的文件,自动化变量用于简化命令执行。
Makefile中的false目标不会生成文件,用于避免与有效文件发生冲突。
Makefile支持条件判断和函数调用,实现逻辑控制和字符串处理。
本章介绍在Linux环境下使用GCC和Makefile编译并执行C语言代码。
学习之后,在实践中,你可以更好地理解流程。
基本的了解就足够了,某些应用需要深入的实践经验。

CURL库开发——嵌入式linux网络编程

在嵌入式Linux系统中,网络编程是一项必备技能。
C语言libcurl库作为URL处理的核心工具,支持多种网络协议,如FTP、HTTP、HTTPS等。
URL(即统一资源定位符)是网络编程中连接到服务器和请求资源的基础。
libcurl的工作原理是:它接收应用程序传递过来的URL字符串,解析协议、域名、端口等信息,然后建立TCP连接,并将URL内容发送到服务器。
服务器响应后,libcurl将结果发送到特定于应用程序的处理库,例如HTTP库,以处理服务器的响应数据。
使用libcurl的步骤通常包括:首先从libcurl官网下载库文件,然后通过./config进行编译和配置,支持自定义安装路径和编译选项。
编译过程涉及解压、配置、编译、安装等步骤,完成后通过CURL指针调用库函数进行网络请求,如设置HTTP头、URL、输出文件路径等,最后发出请求。
通过curl_easy_perform()初始化。
libcurl的实际应用价值在于它的灵活性和灵活性,它可以将任何数据转换为网络请求,例如通过HTTP请求获取图像并连接成URL来实现图像或视频的传输。
通过libcurl,开发人员可以在嵌入式Linux环境中高效处理网络请求、进行数据传输和应用程序开发。