经过多年的使用make,我才刚刚开始在我的项目中使用果酱(实际上是ftjam)。
在我的项目工作区中,我有两个目录:
srctest,我的测试程序在那里我试图设置对测试程序的依赖,以便每次编译它们时,库也会被重新编译(如果需要的话)。
对怎么做有什么建议吗?
发布于 2013-08-26 00:03:50
我正在使用我的一个项目中的Jam,并且遇到了您的情况。我的可执行程序位于bin子目录中,静态库保存在lib子目录中。
在我的顶级Jamfile中,我输入了SubDir TOP ;。这将初始化$(TOP)变量以指向包含此Jamfile的目录。然后我添加了一些行,比如SubInclude TOP bin llvm-tblgen和SubInclude TOP lib Support,它们将bin/llvm-tblgen和lib/Support中的Jamfile的内容添加到构建中。
在bin/llvm-tblgen中的Jamfile中,我输入SubDir TOP bin llvm-tblgen ;。我在lib/Support中的Jamfile中也这样做,但是我使用SubDir TOP lib Support ;。输入SubDir规则时的关键是从TOP到包含此Jamfile的目录中键入每个子目录的名称。
然后,当设置可执行目标的链接行时,我引用支持库如下所示:$(TOP)/lib/Support/libLLVMSupport.a。Jam将这个路径扩展到libLLVMSupport.a的位置,相对于我运行Jam的位置,即使我cd到bin/llvm-tblgen目录并从那里手动运行Jam。
这使得管理包含跨目录依赖关系的大型项目变得非常容易。与以前的解决方案不同,此解决方案允许直接运行Jam。希望它能帮到你!
https://stackoverflow.com/questions/198743
复制相似问题