这是我的问题: 我想让我的qmake脚本检测我的opencv版本并将结果保存在CONFIG变量中。我需要结果才能有这样的形式:“opencv20”,“opencv21”,“opencv22”等。 我知道我可以使用 system ()函数来调用bash命令,并希望使用类似这样的内容:
CONFIG += opencv$$system(pkg-config --modversion opencv | cut -d. -f'1,2' | sed 's/\.//g')
它在我的终端中工作正常,但qmake给了我“opencv2”。当我尝试打印输出时。 pkg-config和cut命令的输出都是正确的,所以我假设sed调用让某些方面混淆qmake ...任何提示?
答案 0 :(得分:2)
system()
命令在子shell中执行。这就是为什么你必须逃避你的字符串:
CONFIG += opencv$$system(pkg-config --modversion opencv | cut -d . -f \'1,2\' | sed \'s/\.//g\')