2

我正在使用 X-Code 4.2 并希望使用 VIM 编辑器和 clang-complete vim 脚本来完成代码。如果我手动设置 clang-complete 配置以反映我的 X-Code 项目中的设置,它工作正常。为了使这项工作更顺利,我想做以下事情。

get_compile_options some_src.m

其中 some_src.m 是我的 XCode 项目中的有效源文件。get_compile_options 的输出应该是 XCode 用于将其构建到目标文件中的所有构建标志。关于如何实现这一点的任何想法。

4

2 回答 2

2

AFAIK 没有公平的方法来实现这一点,但您可以将特殊目标添加到 Xcode 项目中,禁用 dsym 生成,资源复制,添加用户定义选项 'CC=<your custom compiler>' where '<your custom compiler>' will成为记录传递给它的参数的脚本。'some_src.m' 将在'-c' 选项之后。这样,您将通过编译您的特殊目标来收集每个文件的选项。我已经成功地将这种方法与补丁版本的 clang 一起使用。

于 2012-01-08T21:50:58.883 回答
1

我认为我找到了更好的解决方案,您可以使用xctool

您可以将路径传递给您的 xcode 项目、方案(目标),并使用编译命令获取 json。

$1 = path to .xcodeproj file
$2 = scheme (target) 
$3 = path for generated json


#!/bin/bash
XCTOOL_DIR=/Documents/xctool-master #the location of your xctool
$XCTOOL_DIR/xctool.sh -workspace "$1"/project.xcworkspace \
-scheme "$2" \
-reporter json-compilation-database:"$3"/compile_commands.json build

compile_commands.json 是json 编译数据库 ,它具有以下格式:

[
  { "directory": "/home/user/llvm/build",
    "command": "/usr/bin/clang++ -Irelative -DSOMEDEF=\"With spaces, quotes and \\-es.\" -c -o file.o file.cc",
    "file": "file.cc" },
  ...
]

你可以用通常的 json 解析器来解析它,你也可以使用其他的记者

于 2013-11-29T10:56:46.577 回答