gpt4 book ai didi

windows - qmake "system"命令总是返回成功代码

转载 作者:行者123 更新时间:2023-12-03 11:05:26 26 4
gpt4 key购买 nike

我正在为一个复杂的 Qt5 程序编写自动构建系统。
它的一些 C++ 源代码包含特殊标记,需要由外部实用程序处理。
所以我决定在 qmake 项目中编写一个自定义的预构建步骤,如下所示:

!build_pass {
win32 {
for( src, SOURCES ) {
system("findstr \"MY_CUSTOM_MARKER\" $$src"):system( MyExternalUtil $$src )
}
}
}

但是第一个 system 命令总是返回成功,即我所有的源都将被处理!
但是, official Qt documentation say they should not

所以我的问题是:为什么这样的 system 命令总是返回 0

附言我在 Windows 命令提示符下尝试过:当找不到指定的文本时, findstr%errorlevel% 正确设置为 1

P.P.S 这是解决方法(只需使用其他版本的 system ):
!build_pass {
win32 {
for( SRC_PATH, SOURCES ) {
FULL_SRC_PATH = \"$$PWD/$$SRC_PATH\"
FULL_SRC_PATH = $$replace( FULL_SRC_PATH, /, \ )

FIND_RES = $$system( findstr \"MY_CUSTOM_MARKER\" $$FULL_SRC_PATH )
!isEmpty( FIND_RES ) {
message( Processing $$SRC_PATH... )
system( MyExternalUtil $$FULL_SRC_PATH )
}
}
}
}

最佳答案

defineTest(systemWrapper) {
ret = $$system($${ARGS} 2> /dev/null; echo $?)
equals(ret, 0):return(true)
return(false)
}

关于windows - qmake "system"命令总是返回成功代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27037365/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com