首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从命令行从XCode提取构建标志

从命令行从XCode提取构建标志
EN

Stack Overflow用户
提问于 2011-11-20 17:28:56
回答 2查看 776关注 0票数 2

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

代码语言:javascript
复制
get_compile_options some_src.m

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-09 05:50:59

AFAIK没有公平的方法来完成这一点,但你可以在Xcode项目中添加特殊的目标,禁用dsym生成,资源复制,添加用户定义的选项'CC=‘,其中'’将是记录传入参数的脚本。“some_src.m”将紧跟在“-c”选项之后。这样,您将通过编译您的特殊目标来收集每个文件的选项。我已经在clang的补丁版本中成功地使用了这种方法。

票数 2
EN

Stack Overflow用户

发布于 2013-11-29 18:56:47

我想我找到了更好的解决方案,你可以使用xctool

您可以使用编译命令将路径传递到xcode项目、scheme (目标)和get json。

代码语言:javascript
复制
$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 compilation database,它的格式是:

代码语言:javascript
复制
[
  { "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解析器来解析它,也可以使用其他reporters

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8200614

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档