makefile中的路径定义

时间:2013-05-16 14:43:27

标签: path compiler-errors makefile

我对在makefile中指出路径有疑问,我想澄清一下。

假设我的结构是这样的:

/home/machinename/softwarefolder/mainfolder
--------------------------------------------> /subfolder1
--------------------------------------------> /subfolder2

这意味着subfolder1和subfolder2在/ mainfolder中处于相同的嵌套级别。

现在我正在编译子文件夹2中的内容(这意味着我cd到该文件夹​​)使用配置文件,宏指向一个路径,在我的情况下,它在subfolder1中。

程序在子文件夹2中用于编译的配置文件是在运行后由程序自动生成的./configure

自动生成的配置文件具有以这种方式定义的宏

MACRO    =  ../subfolder1

两个点(..)表示,如在cd命令中,“返回一步”(因此,配置文件指向正确的文件夹)?

如果第一个问题的答案是“否”,那么为什么用

代替上述宏
MACRO    =  /home/machinename/softwarefolder/mainfolder/subfolder1

在编译时生成“缺少分隔符”错误?

对不起,这可能是一个微不足道的问题,谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

Make大部分都不以任何方式解释变量的内容。如何解释..的问题完全取决于变量的使用位置。如果它在像../subfolder1这样的路径有意义的地方使用,那就是它的解释方式。如果不是,不是。

由于您没有显示$(MACRO)的使用方式,我们无法提供帮助。但总的来说,你的问题的答案是“是的,这意味着要进入父目录”。

至于你的第二个问题,我无法想象只改变那一行会导致“缺少分隔符”错误。也许您的编辑“帮助”对文件进行了其他更改,例如删除TAB并替换空格或添加TAB? TAB字符在makefile中是特殊的。

如果您需要第二个问题的帮助,您必须提供(a)您收到的确切错误(剪切和粘贴最好),以及(b)makefile中规则中的规则的确切文本。错误信息。