迅为龙芯2K1000开发板Linux工具之make工具和Makefile文件

摘要:
为了解决编译项目非常复杂的问题,前人发明了编译助手工具。2Makefile Makefile是描述编译和连接整个项目的规则的文件。终端输入make命令后,将调用make工具,make将根据文件名在当前目录中查找makefile文件。makefile的名称必须是makefile或makefile。可以使用m的大写和小写。很清楚make工具是什么,如何调用make工具,以及makefile是什么。稍后,当我们学习makefile语法并编写makefile时,这将非常容易。
在编译程序hello world的时候我们是直接使用gcc命令进行编译的。我们编译一个程序是非常的简单的, 直接输入 gcc 然后跟上程序的名称再跟上指定生成程序的名称, 就可以很轻松的编译出可执行文件。但是大家有没有想过,如果要编译一个工程,这个工程里面有很多的源文件, 这时候我们全部使用这个命令来编译那就非常的麻烦了。为了解决编译一个工程非常繁琐这个问题,前辈们就给我们发明了编译辅助工具 make工具。

1 使用make工具

make 工具是编译辅助工具, 用来解决使用命令编译工程非常繁琐的问题。
调用这个命令工具: 我们在 windows 上编程使用 ide , 我们有图形界面, 有相应的按钮, 比如说 build或者 run 来编译。 其实 make 这个编译辅助工具使用也是非常简单的, 我们在控制台上直接输入命令make, 它就会自动调用 make 工具。
作者直接在这个目录下输入 make,然后报错了, 因为我没有告诉 make 这个工具它按照什么规则来编译我们的程序。 如下图所示。
迅为龙芯2K1000开发板Linux工具之make工具和Makefile文件第1张

2 Makefile文件

Makefile 就是描述了整个工程编译连接等规则的文件。 我们在终端输入完 make 命令之后,会调用 make工具, make 就会在当前目录按照文件名就会找 makefile 文件, Makefile 的命名必须是 makefile 或Makefile , m大写小写都是可以的。
作者刚才输入命令报错的原因是因为在当前目录下是没有 makefile 这个文件的, 作者这里新建一个Makefile 文件, 然后在当前目录下输入 make 命令, 我输入完 make 命令, 它就会调用 make 工具, make工具就会在当前目录下找到 makefile 这个文件, 这里又报错了, 因为作者这里创建的 makefile 文件, 他虽然找到了但是里面是空的, 因为没有包含任何的规则。 如下图所示。
迅为龙芯2K1000开发板Linux工具之make工具和Makefile文件第2张
使用命令vi Makefile打开Makefile文件,在里面写入编译规格来编译helloworld.c文件,我们写入以下内容:
all:
(按tab按键缩进)   gcc helloworld.c -o helloworld
迅为龙芯2K1000开发板Linux工具之make工具和Makefile文件第3张
保存退出后输入make , 可以发现在当前这个目录下, 成功的生成了可执行文件, 执行一下, 可以看到成功输出了, 到这里我们的编译流程就已经讲完了, 我们也成功的利用 makefile 文件和 make 工具,如下图所示。
迅为龙芯2K1000开发板Linux工具之make工具和Makefile文件第4张
弄清楚了什么是make工具,怎么来调用 make 工具, makefile 又是什么之后。后面我们再学习 makefile 语法和编写makefile 时,就非常的容易了。
迅为龙芯2k1000开发板:
迅为龙芯2K1000开发板Linux工具之make工具和Makefile文件第5张
迅为龙芯2K1000开发板Linux工具之make工具和Makefile文件第6张
迅为龙芯2K1000开发板Linux工具之make工具和Makefile文件第7张
迅为龙芯2K1000开发板Linux工具之make工具和Makefile文件第8张
核心板参数:
尺寸:65mm*55mm
CPU :龙芯2K1000双核工业级处理器
主频:800MHz-1GHz
内存:板载2GB DDR3 ,可选4GB
存储:8MB的存储,用来放BOOT引导程序的
工作电压:12V和5V
系统支持:流畅运行vusybx、buiroot、Loognix、QT5.12系统。
引角扩展:引出脚多达232个,1.0间距的邮票孔方式,满足用户各类扩展需求
 
底板参数:
尺寸:190mm*125mm   
POWER:电直流电源输入接口
SWITCH:电源开关
Ethernet:2 路10M/100M/1000M自适应以太网
USB HOST:4路USB2.0
OTG:支持
Mini HDMI:支持
RGB-LCD:支持
WIFI/BT:板载WIFI、蓝牙二合一模块
Mini PCIE:可外接mini PCIE接口的4G模块,具备PCIE2.0单通道
4G模块 :支持  (选配)
SIM Card:1个
UART:2路串口
RS485:1路
CAN:2路
蜂鸣器:一个有源蜂鸣器
RTC:支持
LIO/UART:2mm间距20PIN插座引出
GPIO :2mm间距20PIN插座引出
耳机接口:标准3.5mm耳机接口
JTAG:1路JTAG调试接口(2mm间距10PIN插座引出)
GPS:一路GPS  (选配)
固态硬盘接口:1路  (SATA固态盘选配)
按键:3个
温度传感器:支持
风扇驱动:支持

免责声明:文章转载自《迅为龙芯2K1000开发板Linux工具之make工具和Makefile文件》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇webstorm添加vue插件支持Unity你用过哪些设计模式?你熟悉的设计模式有哪几种呢?下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Linux Socket学习(十二)

套接口选项在前面的几章中,我们讨论了使用套接口的基础内容。现在我们要来探讨一些可用的其他的特征。在我们掌握了这一章的概念之后,我们就为后面的套接口的高级主题做好了准备。在这一章,我们将会专注于下列主题:如何使用getsockopt(2)函数获得套接口选项值如何使用setsockopt(2)函数设置套接口选项值如何使用这些常用的套接口选项得到套接口选项有时,...

linux命令mkdir&chmod&chown

一、mkdir-m, –mode=模式 设置权限模式(类似chmod),而不是rwxrwxrwx 减umask mkdir -m 755 dir1-p, –parents 需要时创建目标目录的上层目录,但即使这些目录已存在也不当作错误处理 mkdir -p dir1/sub1/sub2-v, –verbose 每次创建新目录都显示信息 -Z, –conte...

Python程序的执行过程

1. Python是一门解释型语言? 我初学Python时,听到的关于Python的第一句话就是,Python是一门解释性语言,我就这样一直相信下去,直到发现了*.pyc文件的存在。如果是解释型语言,那么生成的*.pyc文件是什么呢?c应该是compiled的缩写才对啊! 为了防止其他学习Python的人也被这句话误解,那么我们就在文中来澄清下这个问题...

linux sync命令

Linux sync命令用于数据同步,sync命令是在关闭Linux系统时使用的。 Linux 系统中欲写入硬盘的资料有的时候为了效率起见,会写到 filesystem buffer 中,这个 buffer 是一块记忆体空间,如果欲写入硬盘的资料存于此 buffer 中,而系统又突然断电的话,那么资料就会流失了,sync 指令会将存于 buffer 中的资...

现代软件构建系统的使用 CMake简介

现代软件构建系统的使用 CMake简介 - 程序即人生 - 博客频道 - CSDN.NET 现代软件构建系统的使用 CMake简介 分类:【Linux】2009-10-29 15:393113人阅读评论(1)收藏举报 目录(?)[+] 现代软件构建系统的使用 CMake简介 前言CMake的主要优点: CMake安装 没有用CMake之前 C...

linux设置上网代理

1、网页上网 网页上网设置代理很简单,在firefox浏览器下 Edit-->>Preferences-->>Advanced-->>Network 在Connection下点击Settings,里面的manual proxy configuration里设置IP和PORT即可 2、yum代理设置 编辑文件为:/etc/...