2011-12-11 4 views
1

今日私が--debug = vを使ってプロジェクトをビルドしたとき、私はそれが何を意味するのか分かりません。にはmakefileが含まれていますが、(検索パス)(no〜expansion)はどういう意味ですか?

「サブメイクファイル」が含まれている場所の右に、(検索パス)(拡張子なし)という奇妙な出力があります。これはどういう意味ですか?

プリントアウトは、次のようになります。

TEST := test01 
include $(TEST)/make.mk 

、付属のメイクファイルは、次のようになります:

次のようになりますなどが使用されるメインのMakefileに

Reading makefiles... 
Reading makefile `Makefile'... 
Reading makefile `make_pc.mk' (search path) (no ~ expansion)... 
Reading makefile `print_ring/make.mk' (search path) (no ~ expansion)... 
Reading makefile `vendor/unity/make.mk' (search path) (no ~ expansion)... 
Reading makefile `test01/make.mk' (search path) (no ~ expansion)... 

ラインを

CFLAGS += -Itest01/ 
OBJ += test_main.o 
test_main.o: test01/test_main.c 
    @ echo ".compiling" 
    $(CC) $(CFLAGS) -o [email protected] $< 

検索パスを使用して再生するより良い方法はありますか?しかし、私のUNIXユーザーの家のディレクトリに拡張するだろうか?

ノート:これはLinux(Ubuntu)マシンで行います。

注::すべてのファイルは、github projectにあります。

/おかげ

答えて

3

それは本当に追跡のために特に使用または文書化されていない場合、それはあまりにも驚くことではありませんので、この情報の一部は、人々が自分自身を作るデバッグするのではなく、自分のプロジェクトのビルドインフラをデバッグすることを目的としているあなた自分のビルドの問題。

つまり、GNU Makeのソースコードで何分かを費やすことで、これらの意味が分かります。

は、(検索パス)は(私はoversummarizingてる)は、メイクの内部RM_INCLUDEDフラグです。このメイクファイルが別のmakefile内includeを経由して発生したと-I検索パスがそれを見つけるために検討されている可能性を意味します。

(なし〜拡大)は、その内部RM_NO_TILDEフラグで、メイクのread.cでこのコメントで説明されています。

/* Expand ~ in FILENAME unless it came from `include', 
    in which case it was already done. */ 

GNUください確かexpand ~ to home directoriesを行い、このフラグが起こってからそれを停止します2回 - 非常に珍しいいくつかのファイルシステムのレイアウトに違いが出ると思います。

関連する問題