面试官:Linux如何编译出C程序?

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

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

hello.c示例代码:

#include 

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

编译:

gcc hello.c -o hello
面试官:Linux如何编译出C程序?

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

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

编译运行:

面试官:Linux如何编译出C程序?

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

面试官:Linux如何编译出C程序?

三、借助CMake生成Makefile

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

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

1、命令行操作

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

sudo apt install cmake
面试官:Linux如何编译出C程序?

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

面试官:Linux如何编译出C程序?

输入如下内容:

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

执行结果如下:

面试官:Linux如何编译出C程序?

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

2、使用cmake-gui

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

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

面试官:Linux如何编译出C程序?

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

sudo apt install cmake-qt-gui

如:

面试官:Linux如何编译出C程序?

启动cmake-gui

面试官:Linux如何编译出C程序?

面试官:Linux如何编译出C程序?

面试官:Linux如何编译出C程序?

查看cmake-gui_test文件夹:

面试官:Linux如何编译出C程序?

编译运行:

面试官:Linux如何编译出C程序?

以上分享了一些编译的过程及方法,都是基础内容,需要熟练掌握。

展开阅读全文

页面更新:2024-04-28

标签:终端   小节   示例   嵌入式   文件夹   演示   命令   阶段   过程   文件   基础   工具   程序   方法   内容   平台   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top