首页 > 解决方案 > Makefile 解释。理解别人的 Makefile

问题描述

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

我了解 Makefiles 用于在编译多个文件时简化编译过程。不必每次需要编译和运行程序时都编写“g++ main.cpp x.cpp y.cpp -o 可执行文件”,而是可以将其放入 Makefile 并在该目录中运行 make。

我正在尝试使用此处使用 tmrh20 库的 nRF24L01 无线电让 RPi 和 Arduino 相互通信我已经成功使用 tmrh20 的 Makefile 来构建所需的可执行文件(在 RPi 上)。但是,我想使用 tmrh20 的库来构建我自己的可执行文件。

我看过几个关于 Makefile 的教程视频,但似乎仍然无法拼凑 tmrh20 中发生的事情。

有问题的 Makefile (1) 在这里。 我相信它在这里以某种方式引用了第二个 Makefile (2)(用于文件名?)(为什么这是必要的?)

如果它可以帮助任何人理解(我花了一段时间),我必须使用 SPIDEV(此处的说明)构建 RF24 目录中的 Makefile (3),它产生了几个我认为与 Makefile (1)&(2) 相关的目标文件)。

我如何从 tmrh20 的 Makefile 中找出我需要哪些文件来制作我自己的 Makefile(如果这有意义的话?)他似乎在他的 Makefile 中使用了未定义的变量?或者也许在别处定义?

为我糟糕的解释道歉。

标签: linuxraspberry-picompilationmakefileg++

解决方案


规范序列不只是makemake install。有一个初始./configure步骤(这样的文件在这里)设置所有内容并生成make步骤中使用的几个文件。

您只需要configure成功运行此脚本一次,除非您想更改构建参数。我说“成功”是因为第一次执行通常会抱怨您缺少库或头文件。但是因斯./configure运行没有错误,make应该make install运行没有错误。

PS:我没有尝试编译它,但由于该项目相当全面configure,它可能已经完成,如果您遵循通常的程序,您不需要调整 makefile。


推荐阅读