我已经尝试Bear和CompileDB从makefiles生成编译数据库JSON。但是,事实证明它们都在我的Mac上生成了无用的空JSON文件。
Bear
在其已知问题列表中确认此问题。
不同操作系统上的安全扩展/模式可能会禁用库预加载。在这种情况下,Bear的行为正常,但是结果编译数据库将为空。 (请确保在报告错误时不是这样。)启用的安全模式的著名示例包括:OS X 10.11(使用
csrutil status | grep 'System Integrity Protection'
检查)和Fedora,CentOS,RHEL(使用sestatus | grep 'SELinux status'
检查)。
现在,仅为了运行一个小程序而关闭SIP并不是一个好的解决方法。您是否知道我可以从给定的makefile生成编译数据库的任何其他方式?
答案 0 :(得分:0)
您是否调查了为什么compileb失败?最简单的是,它解析在构建时make
“打印”出来的编译命令。
如果您有make --print-directory -n
的输出,则还可以在这里生成json文件:https://texttoolkit.com/compilation-database-generator,它的工作原理基本上类似于compiledb,但它是一个Web应用程序。