Makefile解释。了解别人的Makefile

问题描述 投票:0回答:1

我对Linux上的编程比较陌生。

我了解到Makefiles是用来在编译几个文件的时候简化编译过程的。而不是每次需要编译和运行程序时都写 "g++ main.cpp x.cpp y.cpp -o executable",你可以把它扔进一个Makefile,然后在该目录下运行make。

我试图用tmrh20的库让RPi和Arduino使用nRF24L01无线电进行通信。在这里,我已经成功地使用了tmrh20的Makefile来构建所需的可执行文件(在RPi上)。 我已经成功地使用tmrh20的Makefile来构建所需的可执行文件(在RPi上)。然而,我想使用tmrh20的库来构建我自己的可执行文件。

我看了好几个关于Makefile的教程视频,但似乎还是无法弄清楚tmrh20的库中发生了什么。

有问题的Makefile(1)为 这里,我相信它是在引用第二个Makefile(2)(用于文件名? 我相信它是在引用第二个Makefile (2)(用于文件名?这里。 (为什么需要这样做?)

如果这能帮助大家理解的话(我花了点时间),我不得不使用SPIDEV来构建(说明书中的 此处)RF24目录下的Makefile(3)产生了几个对象文件,我认为这些文件与Makefile(1)&(2)有关。

我怎样才能从 tmrh20 的 Makefile 中找到我自己制作 Makefile 所需要的文件(如果这有意义的话)?或者是在其他地方定义的?

很抱歉,我的解释不充分。

linux raspberry-pi compilation makefile g++
1个回答
0
投票

规范的序列不仅仅是 makemake install. 有一个初步的 ./configure 步(这样的文件是 此处),它设置了一切,并生成了几个在 make 的步骤。

您只需要运行这个 configure 脚本只成功执行一次,除非你想改变构建参数。我说 "成功 "是因为第一次执行时通常会抱怨你缺少库或头文件。但是一旦 ./configure 运行无误。makemake install 应该可以无误运行。

PS: 我没有尝试编译它,但由于该项目有一个相当全面的 configure 很可能是完整的,如果你按照通常的程序,你不需要调整 makefile。


0
投票

用你提到的方式分割 Makefile 的原因是为了将变量的定义和实现分开。这样你就可以有多个基础 Makefile 来定义它们的 PROGRAM 变量的不同,但都是基于该变量的值来做同样的事情。

以我个人的观点,我认为这有一定的价值--但有很多方法可以剥掉这只猫的皮。

在艰难地学习了GNU Make之后,我只能建议你也这样做。刚开始的时候会有一个很陡的曲线,但是一旦你掌握了主要的概念,跟着别人的Makefile就会变得很容易。

祝您好运。https:/www.gnu.orgsoftwaremakemanualhtml_nodeindex.html

© www.soinside.com 2019 - 2024. All rights reserved.