Windows下的Java makefile在重音符号上窒息

时间:2014-06-09 10:13:10

标签: java makefile

首先,我很抱歉,如果这是微不足道的,我没有使用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` 

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

看起来您需要安装Cygwin32并将其bin目录添加到您的路径中。

命令findgrep等都是其中的一部分。或者您可以像使用grep一样逐个安装它们。

您的库附带了README或INSTALL文件吗?这些东西通常在那些文件中解释。