Erlang 使用jdk javac和;jar、cygwin制造、安装、gcc和ld
有人知道如何在cygwin中构建Erlang吗 我在cygwin安装中下载了Erlang OTP R15B源代码。Erlang 使用jdk javac和;jar、cygwin制造、安装、gcc和ld,erlang,makefile,cygwin,ld,Erlang,Makefile,Cygwin,Ld,有人知道如何在cygwin中构建Erlang吗 我在cygwin安装中下载了Erlang OTP R15B源代码。 对源文件进行压缩和解压。 然后我做了一个/configure--prefix=/usr,然后进行安装 下面是我所有步骤的截图 # wget the Erlang source (for UNIX systems) wget "http://www.erlang.org/download/otp_src_R15B.tar.gz" -O "$HOME/erlang/otp_src_R1
对源文件进行压缩和解压。
然后我做了一个
/configure--prefix=/usr
,然后进行安装
下面是我所有步骤的截图
# wget the Erlang source (for UNIX systems)
wget "http://www.erlang.org/download/otp_src_R15B.tar.gz" -O "$HOME/erlang/otp_src_R15B.tar.gz"
# tar -zxvf the tarball
tar -zxvf "$HOME/erlang/otp_src_R15B.tar.gz"
# Go to the location of the code
pushd "$HOME/erlang/otp_src_R15B"
# Create perl5 symlink for perl
ln -s /usr/bin/perl.exe perl5.exe
# Configure the build
./configure --prefix=/usr
...
*********************************************************************
********************** APPLICATIONS INFORMATION *******************
*********************************************************************
wx : wxWidgets not found, wx will NOT be usable
*********************************************************************
*********************************************************************
********************** DOCUMENTATION INFORMATION ******************
*********************************************************************
documentation :
fop is missing.
Using fakefop to generate placeholder PDF files.
*********************************************************************
通过在/usr/bin/javac.exe
$ cat /usr/bin/javac.exe
#!/bin/bash
#
# A wrapper for calling javac from Cygwin.
# Tries to convert any arguments that are Unix-style paths into
# Windows-style paths. This includes any arguments to classpath or
# sourcepath or any arguments that begin with / .
#
ME="`basename $0`"
JAVAC_EXEC="$JAVA_HOME/bin/javac"
ARGS=""
while [ -n "$1" ]; do
arg="$1"
shift
case "$arg" in
-cp | -classpath)
arg="$arg' '`cygpath -p -w "$1"`"
shift
;;
-sourcepath)
arg="$arg' '`cygpath -p -w "$1"`"
shift
;;
/*)
arg="`cygpath -p -w "$arg"`"
;;
esac
ARGS="$ARGS '$arg'"
done
eval "set -- $ARGS"
#echo "$JAVAC_EXEC" "$@"
exec "$JAVAC_EXEC" "$@"
还添加了/usr/bin/jar.exe
,如下所示:
$ cat /usr/bin/jar.exe
#!/bin/bash
#
# A wrapper for calling javac from Cygwin.
# Tries to convert any arguments that are Unix-style paths into
# Windows-style paths. This includes any arguments to classpath or
# sourcepath or any arguments that begin with / .
#
ME="`basename $0`"
JAR_EXEC="$JAVA_HOME/bin/jar"
ARGS=""
while [ -n "$1" ]; do
arg="$1"
shift
case "$arg" in
-cp | -classpath)
arg="$arg' '`cygpath -p -w "$1"`"
shift
;;
-sourcepath)
arg="$arg' '`cygpath -p -w "$1"`"
shift
;;
/*)
arg="`cygpath -p -w "$arg"`"
;;
esac
ARGS="$ARGS '$arg'"
done
eval "set -- $ARGS"
#echo "$JAR_EXEC" "$@"
exec "$JAR_EXEC" "$@"
Line
172 .java.class:
173 CLASSPATH=`cygpath -wp $(CLASSPATH)` $(JAVA) $(JAVA_OPTIONS) $<
174
175
176 $(JAVA_DEST_ROOT)$(JAVA_CLASS_SUBDIR)%.class: %.java
177 CLASSPATH=`cygpath -wp $(CLASSPATH)` $(JAVA) $(JAVA_OPTIONS) -d $(JAVA_DEST_ROOT) $<
另外,修改了otp.mk
文件,将类路径设置为预期的windows路径,如下所示:
$ cat /usr/bin/jar.exe
#!/bin/bash
#
# A wrapper for calling javac from Cygwin.
# Tries to convert any arguments that are Unix-style paths into
# Windows-style paths. This includes any arguments to classpath or
# sourcepath or any arguments that begin with / .
#
ME="`basename $0`"
JAR_EXEC="$JAVA_HOME/bin/jar"
ARGS=""
while [ -n "$1" ]; do
arg="$1"
shift
case "$arg" in
-cp | -classpath)
arg="$arg' '`cygpath -p -w "$1"`"
shift
;;
-sourcepath)
arg="$arg' '`cygpath -p -w "$1"`"
shift
;;
/*)
arg="`cygpath -p -w "$arg"`"
;;
esac
ARGS="$ARGS '$arg'"
done
eval "set -- $ARGS"
#echo "$JAR_EXEC" "$@"
exec "$JAR_EXEC" "$@"
Line
172 .java.class:
173 CLASSPATH=`cygpath -wp $(CLASSPATH)` $(JAVA) $(JAVA_OPTIONS) $<
174
175
176 $(JAVA_DEST_ROOT)$(JAVA_CLASS_SUBDIR)%.class: %.java
177 CLASSPATH=`cygpath -wp $(CLASSPATH)` $(JAVA) $(JAVA_OPTIONS) -d $(JAVA_DEST_ROOT) $<
有人知道如何通过这一步吗?提前谢谢 我认为你错了。如果你读得更好,你应该看到这一行:
javac:directory not found:/home/Dragos/erlang/otp_src_R15B/lib/jinterface/priv/
据我所知,下面的错误消息仅仅是因为编译堆栈的展开
目录是否真的存在?
请提供更多信息 你说得对。我应该看看错误消息的结尾。存在
/home/Dragos/erlang/otp_src_R15B/lib/jinterface/priv/
目录。我将尝试手动运行javac命令,看看是否有需要更改的内容。由于JDK设置在cygwin之外,因此可能会出现许多与之相关的问题。它位于我的Windows路径(C:\Program Files\Java\jdk1.6.0_26\bin)和我的cygwin路径(C/cygdrive/C/Program Files/Java/jdk1.6.0_26/bin)中。javac无法处理cygwin路径(即/home/Dragos/erlang/otp_src\u R15B/lib/jinterface/priv/
)。有没有办法为cygwin获取javac?我想你只需要调整env变量:感谢Vincenzo,我使用了上面的javac.exe
和jar.exe
bash脚本来处理cygwin到Windows的路径转换。现在,ld
loader和C
源文件中一些未定义的函数引用出现了新问题。make步骤完成了吗?我对你发布make安装和ld启动感到很困惑!!如果make步骤完成,您应该找到bin和libs。。。