bash - 在 qmake 脚本中调用 sed

标签 bash qmake

这是我的问题: 我想让我的 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 感到困惑......有任何提示吗?

最佳答案

system() 命令在子 shell 中执行。这就是为什么你必须转义你的字符串:

CONFIG += opencv$$system(pkg-config --modversion opencv | cut -d . -f \'1,2\' | sed \'s/\.//g\')

关于bash - 在 qmake 脚本中调用 sed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9443593/

相关文章:

c++ - 构建依赖于静态库 Crypto++ 的 DLL 时出现链接器错误

c++ - 为什么 qmake 将所有对象 (.o) 文件放到一个目录中?

c++ - 如何在 QT 项目的输出构建中包含一个 json 文件

Bash 调用 cmd/c %ProgramFiles(x86)%\

bash - 如何在没有 Readline 支持的情况下在 bash 实例中设置不区分大小写的完成

c - 构建执行作为参数传递的程序的简单 shell 脚本

c++ - 在现有 Qt 项目中从源代码构建第 3 方库

bash - Awk:停止 'print' 添加换行符以及如何循环/自动化

bash - 如果 sed 不存在,如何将 "/"添加到行尾

qt - 如何在 CMake 中使用现有的 QMake 项目(.pro 项目文件)作为 "external project"?