如何从jam脚本中的输入文件中更改扩展名。在linux上我有下面的代码-
for local var in $(objFiles)
{
local objName = [ SHELL "var1=$(var); echo ${var1%.cpp}.obj" ] ;
obj $(objName) : $(var) : $(properties) ;
}for循环中的第一行选择cpp文件名,并将其扩展从<File>.cpp更改为<File>.obj。我需要隐藏这些与windows平台兼容的更改。我认为一些模块在boost构建过程中会提供一些方法来做到这一点,但谷歌搜索在这一点上并没有多大帮助。
在上面的代码中,我应该做哪些更改,以便objName包含obj文件扩展名,并且这些更改在跨平台(特别是win/ linux)中保持兼容。
发布于 2015-04-09 12:16:08
我不熟悉Boost.Jam,但我怀疑它的工作方式与普通的Jam一样。有几个选择器/替换操作符可以应用于变量。在本例中,您希望使用S=更改文件名后缀:
local objName = $(var:S=.obj) ;在常规的Jam中,有一个预定义的操作系统相关变量SUFOBJ,应该使用它而不是硬编码".obj“。不确定,它是否也在Boost.Jam中可用。如果是这样,您可以使用:
local objName = $(var:S=$(SUFOBJ)) ;https://stackoverflow.com/questions/29537692
复制相似问题