Makefile无法识别目标定义



我正在使用Dialogic DivaSDK进行一个项目,以便能够分析电话呼叫。由于DivaSDK通过JNI支持Java,我想尝试一下这些示例。不幸的是:整个Java文档并不像C#文档那样完整。所以它看起来像是在浑水摸鱼。在我的第一步中,我想查看示例(带有示例文件的DivaSDK链接)文件并试用它们。每个样本都有一个必须运行的makefile。手册中唯一能解决我问题的部分听起来是这样的:

有关如何编译和链接应用程序的详细信息,请查看Diva SDK提供的任何示例。在每个示例子目录中,您都会找到一个makefile,它描述了该应用程序的编译和链接过程。对makefile的评估需要一些shell脚本和makefile语法的知识,这超出了本文档的范围。

我现在的问题是给定的makefile没有按照预期的方式工作。我得到了错误"No Targets">由于我对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。

编辑2:嗯。。。文件路径似乎是错误的。如果我用普通斜杠("/")替换一些反斜杠("\"),则编译开始。它停止在副本。。。

该错误意味着Makefile中没有目标allmake懦弱地拒绝继续。

我的猜测是,这个Makefile应该是从另一个Makefile调用的。

将此行添加到Makefile:

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

它应该起作用。如果错误仍然存在,请确保使用GNU make或尝试make all

最新更新