我对在makefile中指出路径有疑问,我想澄清一下。
假设我的结构是这样的:
/home/machinename/softwarefolder/mainfolder
--------------------------------------------> /subfolder1
--------------------------------------------> /subfolder2
这意味着subfolder1和subfolder2在/ mainfolder中处于相同的嵌套级别。
现在我正在编译子文件夹2中的内容(这意味着我cd到该文件夹)使用配置文件,宏指向一个路径,在我的情况下,它在subfolder1中。
程序在子文件夹2中用于编译的配置文件是在运行后由程序自动生成的./configure
自动生成的配置文件具有以这种方式定义的宏
MACRO = ../subfolder1
两个点(..)表示,如在cd命令中,“返回一步”(因此,配置文件指向正确的文件夹)?
如果第一个问题的答案是“否”,那么为什么用
代替上述宏MACRO = /home/machinename/softwarefolder/mainfolder/subfolder1
在编译时生成“缺少分隔符”错误?
对不起,这可能是一个微不足道的问题,谢谢你的帮助!
答案 0 :(得分:0)
Make大部分都不以任何方式解释变量的内容。如何解释..
的问题完全取决于变量的使用位置。如果它在像../subfolder1
这样的路径有意义的地方使用,那就是它的解释方式。如果不是,不是。
由于您没有显示$(MACRO)
的使用方式,我们无法提供帮助。但总的来说,你的问题的答案是“是的,这意味着要进入父目录”。
至于你的第二个问题,我无法想象只改变那一行会导致“缺少分隔符”错误。也许您的编辑“帮助”对文件进行了其他更改,例如删除TAB并替换空格或添加TAB? TAB字符在makefile中是特殊的。
如果您需要第二个问题的帮助,您必须提供(a)您收到的确切错误(剪切和粘贴最好),以及(b)makefile中规则中的规则的确切文本。错误信息。