我有一个项目的部分c源代码,因此我不能编译。有没有人知道是否可以在这个项目上运行codeql?
通常,要创建数据库,codeql cli需要指定构建项目的命令,我无法绕过这一点,尽管我会说能够构建项目看起来并不是很重要。
不过,我可能错了,欢迎任何见解。
发布于 2020-06-01 17:05:23
CodeQL需要知道如何处理您想要分析的每个编译单元,以便获得诸如包含路径、来自编译器命令行的宏、C/C++方言和语言版本以及数据模型之类的信息。因此,没有直接的方法导入不能构建的项目;准确地解释任意部分C/C++源代码是不可能的。
根据您的实际情况,您可以通过各种方式解决此问题。例如,您可以编写一个bash脚本,在您关心的所有源文件上调用gcc或clang,根据您对应该传递的选项的最佳猜测,并在每个命令后使用|| true或类似的命令来抑制错误退出代码。如果您随后将此脚本作为CodeQL的“构建命令”提供,它将遵循您的领导并解释代码,就像您的编译器调用一样。即使你得到了编译错误,你仍然会得到一个你可以使用的(部分) CodeQL数据库。
https://stackoverflow.com/questions/62105456
复制相似问题