首先,我很抱歉,如果这是微不足道的,我没有使用make文件的经验,我只在Windows上开发,而且我已经习惯了IDE。
我需要编译一个外部java库。它带有一个makefile。不幸的是,我在运行它时遇到了很多麻烦。
我从GnuWin32工具集安装了make和grep,并将其添加到我的路径变量中。 当我尝试运行makefile时,它会阻塞:
"javac: invalid flag: `find"
Usage: javac <options> <source files>
似乎在解释重音标记时遇到问题。那应该是被文本编码杀死的引号吗?我做了一个快速的谷歌搜索,但我找不到任何相关的东西。
这是我想要运行的完整make文件:
# UNIX:
#JAVAC=javac -encoding utf8 -target 1.6 -source 1.6 -Xlint:deprecation -Xlint:unchecked -cp "../lib/asm-4.1.jar:../lib/asm-analysis-4.1.jar:../lib/asm-commons-4.1.jar:../lib/asm-tree-4.1.jar:../lib/asm-util-4.1.jar:../lib/asm-xml-4.1.jar:../lib/junit-4.0.jar"
# Win32:
JAVAC=javac -encoding utf8 -target 1.6 -source 1.6 -Xlint:deprecation -Xlint:unchecked -cp "../lib/asm-4.1.jar;../lib/asm-analysis-4.1.jar;../lib/asm-commons-4.1.jar;../lib/asm-tree-4.1.jar;../lib/asm-util-4.1.jar;../lib/asm-xml-4.1.jar;../lib/junit-4.0.jar"
JAVA=java
SOURCES=`find . -name "*.java" | grep -v \\\#`
JAR=pqlib.jar
.PHONY = all default clean test benchmark jar
default: all
all:
${JAVAC} `find . -name "*.java" | grep -v \\\#`
clean:
rm -f `find . -name "*.class"`
test: all
${JAVA} org.junit.runner.JUnitCore `find edu -name "*Test.java" | grep -v \\\# | sed 's/^\.\///' | sed 's/\.java//' | tr '/' '.'`
benchmark: all bench/MiniBench.class
${JAVA} bench.MiniBench
jar: all
rm -f ${JAR}
jar cf ${JAR} `find edu -name "*.class" | grep -v Test`
非常感谢任何帮助。
答案 0 :(得分:1)
看起来您需要安装Cygwin32并将其bin目录添加到您的路径中。
命令find
,grep
等都是其中的一部分。或者您可以像使用grep
一样逐个安装它们。
您的库附带了README或INSTALL文件吗?这些东西通常在那些文件中解释。