|
Windows下常用IDE来编译,Linux下直接使用gcc来编译,编译过程是Linux嵌入式编程的基础,也是嵌入式高频基础面试问题。 一、命令行编译及各个细分编译过程hello.c示例代码: #include <stdio.h>) S% t, f1 |; B$ l [0 ?' G int main(void)# c1 K% `5 R: i2 Y; K* W+ f { printf("Hello world\n");! d* X7 d1 u: q* I return 0; } 编译: gcc hello.c -o hello
如有必要,还需回答出细分的几个步骤: gcc -E hello.c -o hello.i # 预处理阶段 E' s0 R$ N& y: C. r9 Jgcc -S hello.i -o hello.s # 编译阶段' m z# Q" w" L- e/ {3 W5 ]0 Q gcc -c hello.s -o hello.o # 汇编阶段 gcc hello.o -o hello # 链接阶段5 t% @4 t3 @6 {; a7 V 具体细节可查往期笔记:《C程序编译过程》 二、借助make来编译少量文件时可以使用上面方法编译。源码文件较多时,可借用make工具。make通过解析Makefile文件来执行一些gcc命令进行编译。 首先得创建一个Makefile文件,如: hello:hello.cgcc hello.c -o hello+ J2 I- z7 @ {- ~3 R% C- w 编译运行:
上面更细分编译过程的Makefile文件如下:
关于make及Makefile更多内容可查阅: 三、借助CMake生成Makefile实际开发很少会像上面一样自己编写Makefile文件,可借助cmake工具来生成。 CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。 1、命令行操作首先输入cmake --version命令查看cmake版本,若还没安装则执行如下命令安装: sudo apt install cmake6 j1 S! k7 z0 T8 P3 F, a; L% Z( X
下面开始实验演示。我们的cmake_test文件夹下有一个hello.c文件,在同文件夹下创建一个 CMakeLists.txt 文件:
输入如下内容: cmake_minimum_required (VERSION 3.10.2), M* m! b4 E l& Q' zproject (cmake_test)2 \" q1 d5 F9 `7 Y, i# ` add_executable(cmake_test hello.c) 然后在cmake_test目录下依次输入如下命令生成Makefile文件: mkdir build # 创建build文件夹cd build # 进入build文件夹/ k) c* o. W$ R3 r cmake ../ # 在cmake_test文件夹下生成Makefile6 K* B7 K- Z$ b) N9 I 执行结果如下:
关于CMakeLists.txt文件具体语法感兴趣的朋友可自行查阅资料进行学习。 2、使用cmake-gui上述是在命令行下使用cmake生成Makefile进行进行编译的方法。我们也可以使用图形化界面来生成Makefile文件。cmake-gui是cmake的一个图形化工具。下面依旧以实例作为演示。 我们把上一小节的CMakeLists.txt 与hello.c文件放入新创建的文件夹cmake-gui_test中:
在终端输入 cmake-gui 命令启动cmake-gu图形化工具。若未安装可输入如下命令进行安装: sudo apt install cmake-qt-gui5 x3 T, I8 d# [) n如:
启动cmake-gui:
查看cmake-gui_test文件夹:
编译运行:
以上分享了一些编译的过程及方法,都是基础内容,需要熟练掌握。如果觉得文章对你有帮助,欢迎转发。 0 k, H6 I. o2 H9 E& P* l$ E3 p |
微信公众号
手机版