OCLint Xcode 9.3.1 失败

NNi*_*ikN 5 oclint oclint-json-compilation xcode9.3

我有以下运行脚本,可在http://oclint-docs.readthedocs.io/en/stable/guide/xcode.html获取

source ~/.bash_profile
cd ${SRCROOT}
xcodebuild clean
xcodebuild | xcpretty -r json-compilation-database --output compile_commands.json
oclint-json-compilation-database -- -report-type xcode
Run Code Online (Sandbox Code Playgroud)

但是,当我执行它时,我收到以下错误。(1 次失败)oclint:未指定足够的位置命令行参数!

oclint 版本是 OCLint 版本 0.13 和 Xcode 9.3.1

小智 2

我找到了一种从 Xcode 项目生成 JSON 编译数据库而不依赖外部工具的方法。在 macOS 12 Monterey 和Apple Silicon M1 Pro上使用Xcode 13.4.1进行了测试。

在 Xcode 构建设置中,或者在调用时,xcodebuild您可以设置以下编译器标志:
OTHER_CFLAGS = $(inherited) -gen-cdb-fragment-path $(PROJECT_DIR)/CompilationDatabase

这指示 clang 为每个编译发出编译数据库的片段。使用以下命令可以轻松地将这些片段组合到最终的编译数据库中:
sed -e '1s/^/[\'$'\n''/' -e '$s/,$/\'$'\n'']/' *.json > compile_commands.json

当然,验证片段是个好主意,但如果没有外部工具,这是无法完成的。

有关编译器标志、片段验证和引用的完整详细信息,请查看要点:
从 Xcode 项目生成 JSON 编译数据库