我正在尝试与GHC一起构建一个基于CGI的web应用程序的静态二进制代码,并将其部署在共享服务器上。静态链接musl与ghc
我想用musl,如this answer所述。
不幸的是,这并不是一件容易的事:
$ ghc -static -optl-static -pgmc musl-gcc -pgml musl-gcc -L/usr/local/lib app.hs
[1 of 1] Compiling Main (app.hs, app.o)
Linking app...
/usr/lib/ghc-7.6.3/libHSrts.a(Itimer.o): In function `exitTicker':
(.text+0x1af): undefined reference to `__sysv_signal'
collect2: error: ld returned 1 exit status
我在做什么错? (全免责声明:我是一个新手哈斯克尔(。)
我使用Arch Linux的,GHC 7.6.3和Network.CGI
这已完成;见[这里](https://github.com/redneb/ghc-alt-libc)。但是,它看起来需要整个Gentoo chroot来承载编译器,这有点尴尬。 – user31708
其实,你并不需要特别的Gentoo chroot。提供的编译器不是交叉编译器,它本身是一个针对musl编译的二进制文件。因此,它需要一个基于musl的环境来运行。该应用程序可以是Gentoo chroot/docker容器/ lxc容器/等,但也可以是任何基于musl的发行版,如Alpine Linux。 – redneb