2

X-Code 4.2 を使用しており、VIM エディターと clang-complete vim スクリプトを使用してコード補完を行いたいと考えています。X-Code プロジェクトの設定を反映するように clang-complete 構成を手動で設定すると、正常に動作します。この作業をよりスムーズにするために、次のことを行いたいと思います。

get_compile_options some_src.m

some_src.m は、私の XCode プロジェクトの有効なソース ファイルです。get_compile_options からの出力は、XCode がこれをオブジェクト ファイルにビルドするために使用するすべてのビルド フラグである必要があります。これを達成する方法についてのアイデア。

4

2 に答える 2

2

私の知る限り、これを達成するための公正な方法はありませんが、特別なターゲットを Xcode プロジェクトに追加し、dsym 生成を無効にし、リソースをコピーし、ユーザー定義オプション 'CC=<your custom compiler>' を追加することができます。渡されたパラメーターを記録するスクリプトになります。「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 に答える