试图将太多内容传递给QA-C失败



在向QAC配置中添加源文件时遇到问题。经过多次尝试,我发现问题在于调用QAC时定义为参数的包含太多。如果我将减少包含的QAC配置的数量将通过。

我在makefile上尝试了这个:

@for f in $(filter-out $(QAC_EXCLUDE_FILES),$(QAC_SRC)); do 
echo "  - $$f" 1>&2; 
$(QAC) admin -P $(QAC_DIR) -a -- $(QAC_DEF) $(QAC_D_PROJ) $(QAC_INC) $$f >/dev/null; 
done

我还尝试在命令提示符中运行单个命令来添加一个文件:

D:/Tools/PRQA_Framework_2.4.0/common/bin/qacli.exe admin -P D:/Output/qac -a -- -Itoo -Imany -Iincludes D:/Src/import.c

我很确定整个命令行不超过8191个字符的限制(它大约是5500个字符)。

我正在使用我们公司常见的QAC配置,像我的许多同事一样,没有任何问题。在过去的几天里,我刚刚添加了一些新的内容。

结果总是相同的:

  • 从makefile调用:/usr/bin/sh: -c:第3行:语法错误:文件异常结束
  • 从CMD调用:CreateProcess error=3,系统无法找到指定的路径

但是,如果我只是减少包含,一切都很顺利。

另外,我不会说这是CMD的问题,因为我在构建过程中使用相同的包含列表,没有任何问题!这只是QAC的问题。

我的设置是Windows 10, MSYS2工具。

我联系了QAC支持,更好的方法是如何向QAC提供所有信息是生成包含所有定义和包含的列表文件(一行=行源文件)。这种方式也比逐个传递源文件要快得多。

所以文件列表qac_sources.txt(由makefile生成)可能看起来像这样:
D:/Project/a1.c -D__far_func=  -IToo -Imany -Iincludes
D:/Project/a2.c -D__far_func=  -IToo -Imany -Iincludes
D:/Project/a3.c -D__far_func=  -IToo -Imany -Iincludes
D:/Project/a4.c -D__far_func=  -IToo -Imany -Iincludes

:

D:/Tools/qacli.exe admin -P D:/Project/Output/qac -F D:/Project/Output/qac/qac_sources.txt

希望对大家有所帮助。

相关内容

  • 没有找到相关文章

最新更新