0

すべてのソース ファイル (c/cpp) の前提条件ルールを追加するにはどうすればよいですか? メイクファイル全体を自分で作成した場合は簡単ですが、ほとんどのものを非表示にするAndroidビルドシステムを使用しています.

やりたい理由: いくつかの c/cpp ファイルに含まれるヘッダー ファイルを生成するルールを追加しました。依存関係が既に生成されている限り、うまく機能します。ただし、クリーンなプロジェクトでは、コンパイル前に使用可能な依存関係情報がありません。その結果、特定の cpp ファイルがまだ存在しないヘッダー ファイルに依存していることがわからないため、make はクリーンなプロジェクトのルールを実行しません。 . そのため、何らかのルールを追加して、コンパイルが行われる前に前提条件ルールが確実に実行されるようにする必要があります。

これまでのところ、私はこれをしました:

include $(CLEAR_VARS)

.PHONY: ForceRule
MyHeader.h: ForceRule
ForceRule: CreateHeader.sh
    $(shell CreateHeader.sh MyHeader.h)

# below is standard android way to build shared lib from cpp files:
LOCAL_SRC_FILES: File1.cpp File2.cpp
LOCAL_PATH := $(CURDIR)

include $(BUILD_SHARED_LIBRARY)
4

1 に答える 1

0

ブラックボックスのmakefileで確認するのは難しいですが(そしてあなたのアプローチは間違っていると思います)、これを試すことができます:

MyHeader.h: CreateHeader.sh
    $(shell CreateHeader.sh MyHeader.h)

%.o: %.cpp MyHeader.h
于 2013-01-09T21:51:01.827 に答える