我在基于ubuntu:18.04的docker image中使用PVS-Studio来交叉编译几个带有arm- on eabi-gcc的文件。做完之后pvs-studio-analyzer trace -- .test/compile_with_gcc.sh
战略_out文件已成功创建,它不是空的,并且包含对arm-none eabi-gcc的调用。
但是pvs-studio-analyzer analyze抱怨“找不到编译单元”。我试着用--compiler arm-none-eabi-gcc密钥,但没有成功。
有什么想法吗?
发布于 2021-02-28 23:23:15
问题出在我的编译方法上。我没有使用合适的构建系统,而是使用了一个古怪的shell脚本(当然,我认为,使用3个文件的构建系统有点过分了,shell脚本不会伤害任何人)。在我使用的脚本中grep
在源代码中重新定义一个常量-有点像这样:grep -v -i "#define[[:blank:]]\+${define_name}[[:blank:]]" ${project}/src/main/main.c | ~/opt/gcc-arm-none-eabi-8-2018-q4-major/bin/arm-none-eabi-gcc -o main.o -xc
所以编译器没有实际上编译了一个合适的文件,它编译了grep的输出。因此,PVS-Studio自然无法对其进行分析。
TL;DR:不要使用shell脚本作为构建系统。
https://stackoverflow.com/questions/66187086
复制相似问题