如何在不关闭SIP的情况下在macOS Catalina上生成编译数据库?



我已经尝试了熊掌记和CompileDB从makefile生成编译数据库JSON。但是,事实证明,它们都在我的Mac上生成无用的空JSON文件。

Bear在其已知问题列表中承认此问题。

不同操作系统上的安全扩展/模式可能会禁用库预加载。在这种情况下,熊掌记行为正常,但结果编译数据库将为空。(请确保在报告错误时不是这种情况。启用安全模式的显着示例是:OS X 10.11(与csrutil status | grep 'System Integrity Protection'一起检查(,以及Fedora,CentOS,RHEL(与sestatus | grep 'SELinux status'一起检查(。

现在,仅仅为了运行一个小程序而关闭 SIP 不是一个好的解决方法。您知道我可以从给定的生成文件生成编译数据库的任何其他方法吗?

你有没有调查过为什么编译数据库失败?在 neath 下,它解析在构建时make"打印"出来的编译命令。

如果你有make --print-directory -n的输出,你也可以在这里生成 json 文件: https://texttoolkit.com/compilation-database-generator,它基本上像 compiledb 一样工作,但作为一个 Web 应用程序。

最新更新