2016-08-16 11 views
1

関数に対してのみctagsを生成し、typedefsおよびstructを無視するにはどうすればよいですか? 私はctags --declarations --output=tags program.cを試しましたが、この機能を手動で解析する必要があります。 ctags -x --c-kinds=fp path_to_file. 2、私は次のエラーを取得する: 私が試したctagsを使用して関数のみを取得する方法

ctags: unrecognized option '--c-kinds=fp' 
    Try `ctags --help' for a complete list of options. 

編集:

ctags -x --c-types=f ./prog.c 

誰のために:私は熱狂的なインストール後 、次は機能だけヘッダを取得するためのトリックを行います誰がこの質問に遭遇したのか、関数全体(ヘッダと本文)が必要な場合は、そのためのスクリプトを書く必要があります。しかしそれほど難しいことではありません。私は、本質的に、関数ヘッダーをインデックスとして使用しています。一意のインデックスを取得するために、各関数ヘッダーがファイル内のどこにあるかを調べるだけです。いくつかの関数名は同じであるため、コードを繰り返し実行し、コードを繰り返し追加して、あなたのインデックスのリストとは異なるインデックス。関数名と位置をタプルのリストに保存し、リストを昇順でソートします。次に、最初の関数の先頭から始めて、リスト内の次の関数に読み込むことによって、コード抽出関数を読んでください。あなたの状況に応じて、これをいくつか変えなければならないかもしれません。

答えて

1

Exuberant Ctagsを使用していることを確認してください。私のシステムでは:

$ ctags --version 
Exuberant Ctags 5.8, Copyright (C) 1996-2009 Darren Hiebert 
    Compiled: Nov 11 2010, 03:54:52 
    Addresses: <[email protected]>, http://ctags.sourceforge.net 
    Optional compiled features: +wildcards, +regex 

お使いのシステムを象徴ctagsetagsをリンクしておく必要があります。私がそうすると、私はあなたのエラーメッセージを複製します。しかし、未知のオプション・エラーとしてあふれんばかりのctagsショーを使用して:あなたは、ソースからの関数宣言を生成する必要がある場合

ctags: Unknown option: --foo 
0

、あなたは少しのctagsとSEDの魔法でそれを簡単に行うことができます

ctags -x --c-types=f source.c|cut -c51- |sed -e 's/$/;/g' > header.h 
関連する問題