Windows下常用IDE来编译,Linux下直接使用gcc来编译,编译过程是Linux嵌入式编程的基础,也是嵌入式高频基础面试问题。
一、命令行编译及各个细分编译过程
hello.c示例代码:
#include int main(void){ printf("Hello world"); return 0;}
编译:
gcc hello.c -o hello
![00a9c7abf10171b36fdefe49733518f2.png](https://i-blog.csdnimg.cn/blog_migrate/57c02368e49e584b23f866ea2c3f7295.jpeg)
如有必要,还需回答出细分的几个步骤:
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
编译运行:
![79d6975146a47e44722e9de8a7a67e36.png](https://i-blog.csdnimg.cn/blog_migrate/c87b8b04762c3c9f087fd3ed60142088.jpeg)
上面更细分编译过程的Makefile文件如下:
![585d0fe4f7c3a08ee9b868be63b5aac5.png](https://i-blog.csdnimg.cn/blog_migrate/2ff03abd2440f3a5e27dbedacf3e17e0.jpeg)
三、借助CMake生成Makefile
实际开发很少会像上面一样自己编写Makefile文件,可借助cmake工具来生成。
CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。
1、命令行操作
首先输入cmake --version命令查看cmake版本,若还没安装则执行如下命令安装:
sudo apt install cmake
![0fe6be478363a8abda71f0ba27336f8e.png](https://i-blog.csdnimg.cn/blog_migrate/c1ca9f1664baab9f68adfa92febd25e2.jpeg)
下面开始实验演示。我们的cmake_test文件夹下有一个hello.c文件,在同文件夹下创建一个 CMakeLists.txt 文件:
![3553e21d8d6f83b00863a700f5e8fe89.png](https://i-blog.csdnimg.cn/blog_migrate/918d96f5dd9af25e36ca514f48919844.jpeg)
输入如下内容:
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
执行结果如下:
![6df05e879e5a9f08312e63dc9c361f96.png](https://i-blog.csdnimg.cn/blog_migrate/17f5c3e1f7ed2b6f6861542a4ed79e3c.jpeg)
关于CMakeLists.txt文件具体语法感兴趣的朋友可自行查阅资料进行学习。
2、使用cmake-gui
上述是在命令行下使用cmake生成Makefile进行进行编译的方法。我们也可以使用图形化界面来生成Makefile文件。cmake-gui是cmake的一个图形化工具。下面依旧以实例作为演示。
我们把上一小节的CMakeLists.txt 与hello.c文件放入新创建的文件夹cmake-gui_test中:
![50655a0bbf8ab78b9485962897a2f402.png](https://i-blog.csdnimg.cn/blog_migrate/f08052ca926911ca38e35e5342be9830.jpeg)
在终端输入 cmake-gui 命令启动cmake-gu图形化工具。若未安装可输入如下命令进行安装:
sudo apt install cmake-qt-gui
如:
![6cf090b5dbb33e483237049ae0aa9664.png](https://i-blog.csdnimg.cn/blog_migrate/34c63f2a4c15db5032bcbb9733503c91.jpeg)
启动cmake-gui:
![85b9c6d1692adbd4de48677b1d398f73.png](https://i-blog.csdnimg.cn/blog_migrate/8c159da88f7601ddc9b317e2e0c5d2ec.jpeg)
![29dbd46dc99f04409b31df4096c5f567.png](https://i-blog.csdnimg.cn/blog_migrate/3a9d6d4bba3e7dd2bc9c317f8b42800d.jpeg)
![29a967df6bc9d931cb1b07595c2b960a.png](https://i-blog.csdnimg.cn/blog_migrate/5e7dff4f610c30fc31849e738897be25.jpeg)
查看cmake-gui_test文件夹:
![f71a4b828593d5b5aa03a9be594d3b0d.png](https://i-blog.csdnimg.cn/blog_migrate/f2515b3dfe895c5c26cb7bd44940ec7e.jpeg)
编译运行:
![abaefb3ffc04fcbd63cdcb03c8c23cd4.png](https://i-blog.csdnimg.cn/blog_migrate/afd309ca01c47b2ffd05c67fe49d8a07.jpeg)
以上分享了一些编译的过程及方法,都是基础内容,需要熟练掌握。