2

関数を含むtree.c、それらの宣言を含むtree.h、およびテスト用のmain.cを含むバイナリツリープログラムを実装しました。また、次のメイクファイルがあります。

CC=gcc
CFLAGS=-g -Wall
DEPS = tree.h
OBJ = main.o tree.o 

%.o: %.c $(DEPS)
    $(CC) -c -o $@ $< $(CFLAGS)

tree: $(OBJ)
    $(CC) -o $@ $^ $(CFLAGS)

clean:
    rm -f *.o tree

ここで、バイナリ ツリー関数のオブジェクト ファイルだけでなくライブラリを生成し、その後、makefile 内に doxygen のドキュメントを生成するようにします。どんな助けでも役に立ちます。

4

2 に答える 2

8

私の答えが少し遅れることは知っていますが、誰かがこれから恩恵を受けることを願っています.

Doxygen doc を生成するメイクファイルがあります。Doxygen を少しひねる必要があります。必要に応じて Doxygen セットアップ ファイルを作成し、それをエディターで開き、次の 2 つの設定を含む行を削除します (これらは後で make ファイルによって追加されます)。

INPUT
FILE_PATTERNS

この行を追加

@INCLUDE = doxyfile.inc

このファイルを別の名前で保存します Doxyfile.mk を使用します

in You makefile ソースとそれらが配置されているディレクトリのリストが必要です例

SRCS =  $(OBJS:.o=.c)
SRCDIRS = ./src
SRCDIRS += ./other_src

このルールを Makefile に入れると、Doxyfile.mk から削除した設定を含むファイル doxyfile.inc が作成されます。

.PHONY: all clean distclean doxy

# If makefile changes, maybe the list of sources has changed, so update doxygens list
doxyfile.inc: Makefile.mk
        echo INPUT         =  $(SRCDIRS) > doxyfile.inc
        echo FILE_PATTERNS =  *.h $(SRCS) >> doxyfile.inc

doxy: doxyfile.inc $(SRCS) 
        doxygen.exe doxyfile.mk

おまけ: Eclipse などの IDE 内から実行すると、Doxygen が吐き出すエラーはクリック可能になり、悪いコメントにジャンプします。

于 2013-11-07T09:54:33.150 に答える
1

doxygen コマンドの構文がよくわからないので、一般的な回答をします。

Makefile で、それぞれ

term: [dep]
    action

が対象です。

したがって、次のようなものを追加すると:

doc: $(OBJ)
    doxygen with-correct-options

以下を使用してドキュメントを生成できます。

make doc

docここにターゲットの名前があります)

ここで、次を追加すると:

all: tree doc
    @echo "Generating program and doc."

を呼び出すだけで、プログラムとドキュメントが生成されます。

make

最後に、Makefile で使用できる追加のステートメントがあります: .PHONY. これは、「多くのターゲットの 1 つをファイルを直接生成しないものとしてマークし、ターゲットと同じ名前のファイルが存在する場合でもそれらの実行を保証する方法」です。つまり、 、またはという名前のファイルが存在する場合でもdoc、 、cleanまたはall常に実行されることを確認するためです。doccleanall

その構文は次のとおりです。

.PHONY: all clean doc

そして、通常は Makefile の最後に置かれます。

于 2012-12-08T12:27:11.033 に答える