Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Erlang 使用jdk javac和;jar、cygwin制造、安装、gcc和ld_Erlang_Makefile_Cygwin_Ld - Fatal编程技术网

Erlang 使用jdk javac和;jar、cygwin制造、安装、gcc和ld

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

有人知道如何在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_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。。。