shell 如何仅在本地修改的文件上运行PC-Lint(未在SVN服务器上提交)

o8x7eapl  于 2023-03-09  发布在  Shell
关注(0)|答案(1)|浏览(97)

我试图写脚本运行PC-Lint静态分析器工具,只有本地修改的文件由用户,而不是对整个项目。
为此,我需要对所有本地修改的文件运行Lint命令
使用svn状态

svn status -u | grep -w M

命令获取本地修改文件及其完整路径的列表
例如,如果本地修改的文件为asn1_common_elements.c,则上述svn命令给予输出为M 10014\实现\asn1der\src\asn1_common_elements.c
现在,我只需要获取文件名asn1_common_elements.c,并使用LINT命令将其作为LINT asn1_common_elements.log(而不是.c,需要更改为.log)。如何实现这一点?

6yoyoihd

6yoyoihd1#

您可以使用Makefile的功能,让编译器只编译更改过的文件。
在Makefile中执行如下操作:

# Create object from C source code
file.o: file.c
    gcc                -c $(CFLAGS) -o $@
    wine lint-nt.exe   file.c

现在,只有在更改file. c时才会对其进行分析。

相关问题