1

通話を分析できるように、Dialogic DivaSDK を使用したプロジェクトに取り組んでいます。DivaSDK は JNI 経由で Java をサポートしているため、サンプルを試してみたかったのです。残念ながら、Java のドキュメント全体は、C# のドキュメントほど完全ではありません。濁った海で釣りをしているようなものです。最初のステップでは、サンプル ( Link to DivaSDK with Sample Files ) ファイルを調べて試してみました。各サンプルには、実行する必要があるメイクファイルがあります。私の問題を傷つけるマニュアル内の唯一の部分は次のように聞こえます:

アプリケーションをコンパイルおよびリンクする方法の詳細については、Diva SDK で提供されるサンプルを参照してください。すべてのサンプル サブディレクトリには、そのアプリケーションのコンパイルおよびリンク プロセスを記述したメイクファイルがあります。メイクファイルの評価には、シェル スクリプトとメイクファイルの構文に関するある程度の知識が必要であり、このドキュメントの範囲外です。

私の問題は、指定されたメイクファイルが想定どおりに機能しないことです。「ターゲットがありません」というエラーが表示されます。makefile についてあまり詳しくないので、そのファイルの何が問題なのかわかりません。

#-------------------------------------------------------------------------------
#
#  makefile to geenrate the Diva SDK Java sample "SimpleApp".  This makefile 
#  generate the class files for teh framework and the sample and creates 
#  a SimpleApp.jar that can be executed via jav -jar SimpleApp
#  
#  The makefile assumes that the java development enmvironment is installed and 
#  the java tools are accessable from the command prompt.
#
#-------------------------------------------------------------------------------

FRAMEWORK_PATH=..\..\Framework
FRAMEWORK=$(FRAMEWORK_PATH)\DivaAPI.java $(FRAMEWORK_PATH)\DivaCallBase.java

BIN_DIR=.\bin
SRC_DIR=.\src

TRAGET=SimpleApp

#edited with hint from @Aaron Digulla
all : $(BIN_DIR)\$(TRAGET).jar

SRC=$(SRC_DIR)\SimpleApp.java \
    $(SRC_DIR)\AppCall.java


$(BIN_DIR)\$(TRAGET).jar: $(SRC)
@echo #-----------------------------------------------
@echo # Generate class files
@echo #-----------------------------------------------
javac -d $(BIN_DIR) -sourcepath $(FRAMEWORK_PATH) $(FRAMEWORK) $(SRC)
@echo #-----------------------------------------------
@echo # Generate jar files and clean class and manifest
@echo #-----------------------------------------------
copy $(SRC_DIR)\manifest.txt $(BIN_DIR)
cd $(BIN_DIR)
jar -cvfm $(TRAGET).jar manifest.txt *.class > nul
del *.class
del manifest.txt
cd ..
@echo #-----------------------------------------------
@echo # $(BIN_DIR)\$(TARGET).jar successfully created
@echo #-----------------------------------------------

ターゲットの定義が間違っているようですが、どのように定義されているかわかりません。どんなヒントでも大歓迎です。

edit1: @Aaron Digullaからのヒントにより、少しうまく機能します。少なくともターゲットは認識されます。しかし、今では、jar を作成するためのルールがないというエラーが表示されます。

edit2:うーん...ファイルパスが間違っているようです。バックスラッシュ ( "\" ) の一部を通常のスラッシュ ( "/" ) に置き換えると、コンパイルが開始されます。コピーで止まりますが…

4

1 に答える 1

2

allこのエラーは、Makefile にターゲットがなく、make臆病に続行を拒否したことを意味します。

私の推測では、この Makefile は別の Makefile から呼び出されるはずです。

次の行を Makefile に追加します。

all : $(BIN_DIR)\$(TRAGET).jar

そしてそれはうまくいくはずです。エラーが続く場合は、必ず GNU make または try を使用してくださいmake all

于 2012-12-07T14:49:22.660 に答える