高山Linux上的MLton

时间:2018-01-15 10:32:58

标签: alpine mlton

我遇到了使用MLton compilerDocker容器中安装和运行Alpine Linux的问题。 有没有办法在这个系统上安装这个编译器?

尝试#1

使用标准的'高山基本图像和MLton的二进制分布:

$ curl http://sourceforge.net/projects/mlton/files/mlton/20130715/mlton-20130715-1.amd64-linux.tgz --output mlton-20130715-1.amd64-linux.tgz
$ docker build .

使用以下Dockerfile:

FROM alpine
COPY mlton-20130715-1.amd64-linux.tgz /
RUN apk add --no-cache bash build-base gmp-dev linux-headers \
 && tar xf /mlton-20130715-1.amd64-linux.tgz \
        --directory /usr/ \
        --strip-components 1 \
 && echo 'print "Hello, world!\n";' >> hello-world.sml \
 && mlton hello-world.sml

Docker构建失败并显示以下错误消息,可能是因为缺少glibc

  

/ usr / bin / mlton:第52行:/ usr / lib / mlton / mlton-compile:没有这样的文件或目录

尝试#2

与上面相同,嵌入glibc的基础Docker镜像:

FROM frolvlad/alpine-glibc

这次,mlton会运行,但会产生以下错误:

  

/usr/lib/gcc/x86_64-alpine-linux-musl/6.4.0 /../../../../ x86_64-alpine-linux-musl / bin / ld:/ usr / lib /mlton/targets/self/libmlton.a(platform.o):在创建共享对象时,不能使用针对`.rodata.str1.8'的重定位R_X86_64_32;用-fPIC重新编译

     

...

     

/usr/lib/gcc/x86_64-alpine-linux-musl/6.4.0 /../../../../ x86_64-alpine-linux-musl / bin / ld:最终链接失败:关于产出的不可代表部分

     

collect2:错误:ld返回1退出状态

     

调用系统失败,退出状态为1:

     

gcc -o hello-world /tmp/fileGEluFu.o /tmp/fileYnNjh9.o -L / usr / lib / mlton / targets / self -lmlton -lgdtoa -lm -lgmp -m64 -Wl,-znoexecstack

关于如何解决这个问题的任何想法?

0 个答案:

没有答案