创建makefile文件(树莓派makefile文件怎么创建)

2024-07-28 10:40:38 2

创建makefile文件(树莓派makefile文件怎么创建)

大家好,如果您还对创建makefile文件不太了解,没有关系,今天就由本站为大家分享创建makefile文件的知识,包括树莓派makefile文件怎么创建的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

本文目录

树莓派makefile文件怎么创建

无论gcc指令的参数如何变化,从源文件变为可执行文件只需要两步,第一步源文件编译为目标文件,第二步从目标文件链接为可执行文件。在最简单的指令——gcc test.c -o test中使用了一处GCC的隐含规则,所有编译和链接这两个关键步骤展现的不明显。那么下面通过指令让“不明显”变得“明显”。【1】由c文件编译为目标文件 【写法1】 gcc -c test.c -o test.o 【写法2】——顺序可以颠倒 gcc -o test.o -c test.c 【写法3】——适当简写 可以适当简写,充分利用GCC的默认规则,*.o文件由同名的*.c文件编译得到。 gcc -c test.c 【写法4】——有点奇怪 还可以这样写,虽然看起来有点奇怪,但只执行结果却是一样的。makefile文件似乎更喜欢这种方式。 gcc -c -o test.o test.c【2】把目标文件链接为可执行文件 【写法1】 gcc test.o -o test 【写法2】——顺序可以颠倒 顺序可以颠倒,makefile文件似乎更喜欢这种方式。 gcc -o test test.o

在根目录下创建main.c,在function目录创建mytool1.c,mytool1.h,mytool2.c,mytool2.h,如何作makefile文件

这篇文章介绍在LINUX下进行C语言编程所需要的基础知识.在这篇文章当中,我们将会学到以下内容: 源程序编译 Makefile的编写 程序库的链接 程序的调试 头文件和系统求助 --------------------------------------------------------------------------------1.源程序的编译在Linux下面,如果要编译一个C语言源程序,我们要使用GNU的gcc编译器. 下面我们以一个实例来说明如何使用gcc编译器. 假设我们有下面一个非常简单的源程序(hello.c): int main(int argc,char **argv){printf("Hello Linux\n");}要编译这个程序,我们只要在命令行下执行: gcc -o hello hello.c gcc 编译器就会为我们生成一个hello的可执行文件.执行./hello就可以看到程序的输出结果了.命令行中gcc表示我们是用gcc来编译我们的源程序,-o 选项表示我们要求编译器给我们输出的可执行文件名为hello而hello.c是我们的源程序文件. gcc编译器有许多选项,一般来说我们只要知道其中的几个就够了. -o选项我们已经知道了,表示我们要求输出的可执行文件名.-c选项表示我们只要求编译器输出目标代码,而不必要输出可执行文件. -g选项表示我们要求编译器在编译的时候提供我们以后对程序进行调试的信息. 知道了这三个选项,我们就可以编译我们自己所写的简单的源程序了,如果你想要知道更多的选项,可以查看gcc的帮助文档,那里有着许多对其它选项的详细说明. 2.Makefile的编写假设我们有下面这样的一个程序,源代码如下: /* main.c */#include "mytool1.h"#include "mytool2.h"int main(int argc,char **argv){mytool1_print("hello");mytool2_print("hello");}/* mytool1.h */#ifndef_MYTOOL_1_H#define _MYTOOL_1_Hvoid mytool1_print(char *print_str);#endif/* mytool1.c */#include "mytool1.h"void mytool1_print(char *print_str){printf("This is mytool1 print %s\n",print_str);}/* mytool2.h */#ifndef_MYTOOL_2_H#define _MYTOOL_2_Hvoid mytool2_print(char *print_str);#endif/* mytool2.c */#include "mytool2.h"void mytool2_print(char *print_str){printf("This is mytool2 print %s\n",print_str);}当然由于这个程序是很短的我们可以这样来编译 gcc -c main.c gcc -c mytool1.c gcc -c mytool2.c gcc -o main main.o mytool1.o mytool2.o 这样的话我们也可以产生main程序,而且也不时很麻烦.但是如果我们考虑一下如果有一天我们修改了其中的一个文件(比如说mytool1.c)那么我们难道还要重新输入上面的命令?也许你会说,这个很容易解决啊,我写一个SHELL脚本,让她帮我去完成不就可以了.是的对于这个程序来说,是可以起到作用的.但是当我们把事情想的更复杂一点,如果我们的程序有几百个源程序的时候,难道也要编译器重新一个一个的去编译? 为此,聪明的程序员们想出了一个很好的工具来做这件事情,这就是make.我们只要执行以下make,就可以把上面的问题解决掉.在我们执行make之前,我们要先编写一个非常重要的文件.--Makefile.对于上面的那个程序来说,可能的一个Makefile的文件是: # 这是上面那个程序的Makefile文件main:main.o mytool1.o mytool2.ogcc -o main main.o mytool1.o mytool2.omain.o:main.c mytool1.h mytool2.hgcc -c main.cmytool1.o:mytool1.c mytool1.hgcc -c mytool1.cmytool2.o:mytool2.c mytool2.hgcc -c mytool2.c有了这个Makefile文件,不过我们什么时候修改了源程序当中的什么文件,我们只要执行make命令,我们的编译器都只会去编译和我们修改的文件有关的文件,其它的文件她连理都不想去理的. 下面我们学习Makefile是如何编写的. 在Makefile中也#开始的行都是注释行.Makefile中最重要的是描述文件的依赖关系的说明.一般的格式是: target: componentsTAB rule第一行表示的是依赖关系.第二行是规则. 比如说我们上面的那个Makefile文件的第二行 main:main.o mytool1.o mytool2.o 表示我们的目标(target)main的依赖对象(components)是main.o mytool1.o mytool2.o当倚赖的对象在目标修改后修改的话,就要去执行规则一行所指定的命令.就象我们的上面那个Makefile第三行所说的一样要执行 gcc -omain main.o mytool1.o mytool2.o 注意规则一行中的TAB表示那里是一个TAB键 Makefile有三个非常有用的变量.分别是$@,$^,$int main(int argc,char **argv){double value;printf("Value:%f\n",value); }这个程序相当简单,但是当我们用 gcc -o temp temp.c 编译时会出现下面所示的错误. /tmp/cc33Kydu.o: In function `main’:/tmp/cc33Kydu.o(.text+0xe): undefined reference to `log’collect2: ld returned 1 exit status出现这个错误是因为编译器找不到log的具体实现.虽然我们包括了正确的头文件,但是我们在编译的时候还是要连接确定的库.在Linux下,为了使用数学函数,我们必须和数学库连接,为此我们要加入 -lm 选项. gcc -o temp temp.c-lm这样才能够正确的编译.也许有人要问,前面我们用printf函数的时候怎么没有连接库呢?是这样的,对于一些常用的函数的实现,gcc编译器会自动去连接一些常用库,这样我们就没有必要自己去指定了. 有时候我们在编译程序的时候还要指定库的路径,这个时候我们要用到编译器的-L选项指定路径.比如说我们有一个库在 /home/hoyt/mylib下,这样我们编译的时候还要加上-L/home/hoyt/mylib.对于一些标准库来说,我们没有必要指出路径.只要它们在起缺省库的路径下就可以了.系统的缺省库的路径/lib/usr/lib /usr/local/lib 在这三个路径下面的库,我们可以不指定路径. 还有一个问题,有时候我们使用了某个函数,但是我们不知道库的名字,这个时候怎么办呢?很抱歉,对于这个问题我也不知道答案,我只有一个傻办法.首先,我到标准库路径下面去找看看有没有和我用的函数相关的库,我就这样找到了线程(thread)函数的库文件(libpthread.a).当然,如果找不到,只有一个笨方法.比如我要找sin这个函数所在的库. 就只好用 nm -o /lib/*.so|grepsin》~/sin 命令,然后看~/sin文件,到那里面去找了.在sin文件当中,我会找到这样的一行libm-2.1.2.so:00009fa0 W sin 这样我就知道了sin在libm-2.1.2.so库里面,我用 -lm选项就可以了(去掉前面的lib和后面的版本标志,就剩下m了所以是 -lm).如果你知道怎么找,请赶快告诉我,我回非常感激的.谢谢! 4.程序的调试 我们编写的程序不太可能一次性就会成功的,在我们的程序当中,会出现许许多多我们想不到的错误,这个时候我们就要对我们的程序进行调试了. 最常用的调试软件是gdb.如果你想在图形界面下调试程序,那么你现在可以选择xxgdb.记得要在编译的时候加入-g选项.关于gdb的使用可以看gdb的帮助文件.由于我没有用过这个软件,所以我也不能够说出如何使用.不过我不喜欢用gdb.跟踪一个程序是很烦的事情,我一般用在程序当中输出中间变量的值来调试程序的.当然你可以选择自己的办法,没有必要去学别人的.现在有了许多IDE环境,里面已经自己带了调试器了.你可以选择几个试一试找出自己喜欢的一个用. 5.头文件和系统求助 有时候我们只知道一个函数的大概形式,不记得确切的表达式,或者是不记得着函数在那个头文件进行了说明.这个时候我们可以求助系统. 比如说我们想知道fread这个函数的确切形式,我们只要执行 man fread系统就会输出着函数的详细解释的.和这个函数所在的头文件说明了. 如果我们要write这个函数的说明,当我们执行manwrite时,输出的结果却不是我们所需要的.因为我们要的是write这个函数的说明,可是出来的却是write这个命令的说明.为了得到write的函数说明我们要用 man 2 write.2表示我们用的write这个函数是系统调用函数,还有一个我们常用的是3表示函数是C的库函数. 记住不管什么时候,man都是我们的最好助手. 望采纳,谢谢

vscode使用makefile批量创建obj文件

1、scode终端下执行make指令,即可在build文件下编译出.hex.bin.elf文件,中间文件放在build/Obj/文件夹下。2、执行makeclean,可清除build文件夹。3、执行makedownload,可一键下载hex到目标板子并让板子复位运行,相当于keil的一键下载按钮。4、执行makereset,可以让板子复位运行一下。5、执行makecommit,可一键推送到github或者giteee远程服务器上去,但前提是自己创建了这个工程的git。

如何使用redhat linux下创建的makefile文件

  • 不要sudo 直接执行 make

  • 进入到makefile所在目录,输入命令make,然后回车就行了.

树莓派makefile文件怎么创建的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于树莓派makefile文件怎么创建、树莓派makefile文件怎么创建的信息别忘了在本站进行查找哦。

创建makefile文件(树莓派makefile文件怎么创建)

本文编辑:admin

更多文章:


动物保护法怎么投票(如何看待近日部分动物保护人士鼓吹的使用异烟肼毒杀流浪猫狗的行为)

动物保护法怎么投票(如何看待近日部分动物保护人士鼓吹的使用异烟肼毒杀流浪猫狗的行为)

本文目录如何看待近日部分动物保护人士鼓吹的使用异烟肼毒杀流浪猫狗的行为你觉得小动物保护法应该保护狗吗怎样促进我国动物保护法出台虐猫事件后,爱猪人士爱牛人士等共同呼吁成立动物保护法,你支持么如果邀请你对伤害野生动物的进行处罚投票,你会怎么投如

2024年5月16日 11:17

微信炸屎特效上线(微信上有哪些新彩蛋)

微信炸屎特效上线(微信上有哪些新彩蛋)

本文目录微信上有哪些新彩蛋微信新功能来了,网友们都玩疯了,你知道是什么功能吗微信又有新功能:拍雷、炸屎、爱心雨,还支持上传1G原画视频春节到了,你们用鞭炮炸过牛屎吗过年,你有用鞭炮炸屎的经历吗数款皮肤形象升级,白起重做上线,天魔缭乱新特效帅

2023年6月19日 02:00

为什么我电脑迅雷加速器会员支付页面都打不开?着个CF的加速器叫什么来着

为什么我电脑迅雷加速器会员支付页面都打不开?着个CF的加速器叫什么来着

本文目录为什么我电脑迅雷加速器会员支付页面都打不开着个CF的加速器叫什么来着百度乐游的优势是什么最近玩CF很卡,有没有好用的网游加速器NBA2K20玩线上都用什么加速器cf用什么加速器最好为什么我电脑迅雷加速器会员支付页面都打不开尊敬的迅雷

2024年6月28日 01:33

电脑噪音大怎么办(台式机噪音大该怎么办)

电脑噪音大怎么办(台式机噪音大该怎么办)

本文目录台式机噪音大该怎么办电脑噪音大怎么处理解决电脑噪音大的办法新电脑主机噪音大的解决方法电脑噪音过大怎么办笔记本电脑风扇噪音大,怎么解决电脑噪音大的解决办法台式机噪音大该怎么办    台式机 一直在响,噪音非常的大!该怎么样解

2024年6月25日 09:16

大型单机游戏排行榜前十名(十大最好玩的单机游戏)

大型单机游戏排行榜前十名(十大最好玩的单机游戏)

各位老铁们好,相信很多人对大型单机游戏排行榜前十名都不是特别的了解,因此呢,今天就来为大家分享下关于大型单机游戏排行榜前十名以及十大最好玩的单机游戏的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录十大最好玩的单机

2024年6月9日 17:40

网上视频教学平台(网络授课平台有哪些)

网上视频教学平台(网络授课平台有哪些)

大家好,关于网上视频教学平台很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于网络授课平台有哪些的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!本文目录网络授课平

2024年8月21日 09:50

《武林志》哪个门派最厉害?武林志刀尊任务怎么触发

《武林志》哪个门派最厉害?武林志刀尊任务怎么触发

本文目录《武林志》哪个门派最厉害武林志刀尊任务怎么触发武林志2英雄村线索是什么武林志电影 武林志电影介绍武林志神掌李的原型武林志七阶内功怎么学武林志七阶内功怎么获得武林志怎么自创门派《武林志》这本书怎么样武林志前期怎么获得修为《武林志》哪个

2024年3月25日 18:10

dnf剑魂加点(dnf剑魂如何加点)

dnf剑魂加点(dnf剑魂如何加点)

大家好,关于dnf剑魂加点很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于dnf剑魂如何加点的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!本文目录dnf剑魂如

2024年5月16日 11:16

万年历对照表(新历旧历对照表)

万年历对照表(新历旧历对照表)

大家好,如果您还对万年历对照表不太了解,没有关系,今天就由本站为大家分享万年历对照表的知识,包括新历旧历对照表的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录新历旧历对照表万年历对照表60年,六十甲子万年历公历农历

2024年8月19日 15:25

电脑的pc是什么意思?pc休闲游戏推荐

电脑的pc是什么意思?pc休闲游戏推荐

本文目录电脑的pc是什么意思pc休闲游戏推荐rdpclip.exe--应用程序错误 “0xa6932414”指令引用的“0x00000a69”内存该内存不能“read”rdpclip.exe是安全的启动项吗杀手2可以把npc都杀了吗pc是什

2024年6月2日 20:33

南京做PHP开发 PHP外包公司的最好的是哪家?中软国际:PHP真的值得编程初学者去学习吗

南京做PHP开发 PHP外包公司的最好的是哪家?中软国际:PHP真的值得编程初学者去学习吗

本文目录南京做PHP开发 PHP外包公司的最好的是哪家中软国际:PHP真的值得编程初学者去学习吗在PHP外包公司想辞职,但是有不好意思开口,怎么办呢现在请一位php兼职需要多少钱公司要做小程序开发,没技术团队,我也不懂该怎么办it项目外包公

2023年10月4日 13:40

vagaa还能下片吗(vagaa为何不能下载电影了)

vagaa还能下片吗(vagaa为何不能下载电影了)

各位老铁们好,相信很多人对vagaa还能下片吗都不是特别的了解,因此呢,今天就来为大家分享下关于vagaa还能下片吗以及vagaa为何不能下载电影了的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录vagaa为何不

2024年6月18日 10:39

帝国时代2征服者中文版免费下载(《帝国时代2征服者》中文正式版在哪有的下载)

帝国时代2征服者中文版免费下载(《帝国时代2征服者》中文正式版在哪有的下载)

大家好,帝国时代2征服者中文版免费下载相信很多的网友都不是很明白,包括《帝国时代2征服者》中文正式版在哪有的下载也是一样,不过没有关系,接下来就来为大家分享关于帝国时代2征服者中文版免费下载和《帝国时代2征服者》中文正式版在哪有的下载的一些

2024年6月28日 20:55

好易通对讲机(摩托罗拉和好易通的对讲机哪家好)

好易通对讲机(摩托罗拉和好易通的对讲机哪家好)

本文目录摩托罗拉和好易通的对讲机哪家好对讲机好易通tc500怎样调频好易通对讲机610跟510有什么区别好易通TC585对讲机怎样修改频率好易通527对讲机说明书摩托罗拉和好易通的对讲机哪家好在国际上摩托是老大。国内做工不错的就是好易通了。

2024年6月4日 06:30

游戏软件大全下载免费下载(电脑单机游戏下载的软件有哪些)

游戏软件大全下载免费下载(电脑单机游戏下载的软件有哪些)

各位老铁们,大家好,今天由我来为大家分享游戏软件大全下载免费下载,以及电脑单机游戏下载的软件有哪些的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!本文目录电

2024年7月22日 21:39

三菱空调遥控器(三菱空调遥控器热风使用方法)

三菱空调遥控器(三菱空调遥控器热风使用方法)

本文目录三菱空调遥控器热风使用方法三菱空调遥控器代表什么意思什么是三菱空调遥控器老三菱空调遥控器使用三菱空调遥控器怎么用使用方法介绍三菱空调遥控器怎么用三菱空调遥控器图标+按键求解释三菱空调遥控器按了没反应是怎么回事三菱空调遥控器代表什么模

2024年6月14日 22:32

酷狗音乐下载安装2018(华为手机如何下载酷狗音乐)

酷狗音乐下载安装2018(华为手机如何下载酷狗音乐)

“酷狗音乐下载安装2018”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看酷狗音乐下载安装2018(华为手机如何下载酷狗音乐)!本文目录华为手机如何下载酷狗音乐酷狗音乐怎么安装下载酷狗音乐电脑怎么下载酷狗音乐到桌面酷狗音乐2

2024年7月1日 10:35

暗黑破坏神2补丁(单机版暗黑破坏神2补丁怎么用啊)

暗黑破坏神2补丁(单机版暗黑破坏神2补丁怎么用啊)

本文目录单机版暗黑破坏神2补丁怎么用啊暗黑破坏神2高分辨率补丁怎么用啊暗黑破坏神2补丁如何使用暗黑破坏神2补丁有什么用暗黑破坏神2显示物品极品变量的补丁单机版暗黑破坏神2补丁怎么用啊那要看什么补丁了常用的就是解压缩后覆盖同名文件和把安装文件

2024年6月3日 14:16

贪婪BT下载文件百分比的问题!?贪婪BT说是中文版的为什么装上都是英文的

贪婪BT下载文件百分比的问题!?贪婪BT说是中文版的为什么装上都是英文的

本文目录贪婪BT下载文件百分比的问题!贪婪BT说是中文版的为什么装上都是英文的贪婪BT下载文件百分比的问题!我在用贪婪BT这个软件下载时,也是这样,如果死机了,就容易丢失一部分正在下载的文件,还得重新下,浪费时间.建议换个BT下载软件,如B

2024年3月12日 03:15

手机root大师下载(VIVOX7的root权限怎么获取)

手机root大师下载(VIVOX7的root权限怎么获取)

大家好,今天小编来为大家解答以下的问题,关于手机root大师下载,VIVOX7的root权限怎么获取这个很多人还不知道,现在让我们一起来看看吧!本文目录VIVOX7的root权限怎么获取乐视超级手机一键ROOT失败,要怎么解决一键Root大

2024年5月16日 18:54

近期文章

本站热文

iphone vpn设置(ios设置vpn快捷开关)
2024-07-22 15:01:12 浏览:2334
windows12正式版下载(操作系统Windows Server 2012 R2,在哪能下载到,公司用的)
2024-07-20 17:26:53 浏览:1730
java安装教程(win10如何安装JAVA)
2024-07-19 19:55:49 浏览:1155
client mfc application未响应(每次进cf就提示client MFC Application未响应该怎么办啊!急急急)
2024-07-20 11:15:58 浏览:1152
标签列表

热门搜索