1

mingw32 でビルドする有効な makefile があります。そのメイクファイルの名前を Makefile.w32 に変更しました (ソース -> http://pastie.org/319964 )

今、私は次のような Makefile を持っています。問題は、それが私のソースをビルドしないことです

all:
    make mingw32

clean:
    @echo "causes an infinite loop -> make mingw32 clean"

mingw32:
    @echo "yeahhhhhhhhh"
    make Makefile.w32

mingw32-clean:
    @echo "mingw clean"
    make Makefile.w32 clean

結果:

> "make" 
make mingw32
make[1]: Entering directory `/c/nightly/test'
yeahhhhhhhhh
make Makefile.w32
make[2]: Entering directory `/c/nightly/test'
make[2]: Nothing to be done for `Makefile.w32'.
make[2]: Leaving directory `/c/nightly/test'
make[1]: Leaving directory `/c/nightly/test'

Makefile.w32 拡張子が気に入らないようです。ビルドされない理由がわかりません。それは明らかに私の「make Makefile.w32」行に到達しています。

4

2 に答える 2

3

「make Makefile.w32」は、その名前のメイク ファイルではなく、Makefile.w32 という名前のターゲットを探しています。make を実行し、make ファイル "Makefile.w32" を読み取るように指示するには、-f スイッチを使用します。

make -f Makefile.w32

編集:ちなみに、「すべて」が同じメイクファイルの「mingw32」ターゲットに依存することだけが必要な場合、「すべて」ターゲットでmakeの別のインスタンスを起動するのはなぜですか?私見ですが、代わりに依存ターゲットとして宣言する方が良いでしょう:

all: mingw32

同様に、「clean」と「mingw32-clean」の場合:

clean: mingw32-clean
于 2008-11-20T21:06:01.183 に答える
0

cmakeを使用して makefile を生成できます。ほとんどのプラットフォームで動作するはずです。

于 2008-11-20T21:07:34.317 に答える