0

バイナリをクロスコンパイルするようにmakefileを変更しようとしています。問題のコマンドは次のとおりです。

# GNU Make solution makefile autogenerated by Premake
# Type "make help" for usage help



ifndef config
  config=debug
endif
export config

PROJECTS := json openjaus openjaus-core openjaus-environment openjaus-mobility openjaus-manipulator openjaus-ugv Base Managed PingTest LargeMessageTest PdDemo GposDemo   GposClientDemo StillImageSensorDemo StillImageClientDemo

.PHONY: all clean help $(PROJECTS)

all: $(PROJECTS)

json:   
    @echo "==== Building json ($(config)) ===="
    @${MAKE} --no-print-directory -C .build -f json.make

ご覧のとおり、makefileにはいくつかのターゲットがあります。それらはすべて「json」ターゲットと同じ構造を持っています。問題のコマンドは

@${MAKE} --no-print-directory -C .build -f json.make

'${MAKE}'変数=make(これをechoで検証しました)-Cは何をしますか?.buildは何をしますか?私は-fjson.makeが得意です

また、makeを実行すると、json.makeファイルが作成され、コンパイルファイルが作成されて自分で削除されるため、そのファイルにアクセスできません。

問題のコマンドを変更したときに受け取るエラーは次のとおりです。

==== Building json (debug) ====
make[1]: Nothing to be done for `/home/botbear/openwrt/trunk/staging_dir/toolchain-    arm_v6k_gcc-linaro_uClibc-0.9.32_eabi/bin/arm-openwrt-linux-c++'.

変更後のコマンドは次のようになります。

@${MAKE} /home/botbear/openwrt/trunk/staging_dir/toolchain-arm_v6k_gcc-linaro_uClibc-0.9.32_eabi/bin/arm-openwrt-linux-c++ --no-print-directory -C .build -f json.make

どんな助けでも大歓迎です!

4

2 に答える 2

0

man makeのパラメーターを理解するために使用できますmake

-C dir, --directory=dir
        Change to directory dir before reading the makefiles or doing any-
        thing else.  If multiple -C options are specified, each is  inter-
        preted  relative to the previous one: -C / -C etc is equivalent to
        -C /etc.  This is typically used  with  recursive  invocations  of
        make.

-f file, --file=file, --makefile=FILE
        Use file as a makefile.

-C .buildディレクトリに移動します.build

コマンドの変更に関する質問の部分がわかりません。

于 2012-05-14T00:21:28.977 に答える
0

json.make が存在する場所を見つけてみてください。あなたが話していたディレクトリを作成および削除するのはそのmakefileのようです。

コマンドラインからは make がディレクトリを .build に変更して json.make を実行しているようです。json.make がどのように終了するかはわかりません。.build は、作成されてから削除されるディレクトリですか?

于 2012-05-15T12:02:37.273 に答える