我对任何语言的静态链接都不熟悉,但是我试图静态链接Haskell程序以在其他Mac上使用。通过使用以下选项,我设法在Linux上进行了静态链接,并确认它可以在其他Linux机器上正常工作:-O2 -static -optl-static -optl-pthread

当我尝试在OS X上使用这些选项时,出现以下错误:

ld: library not found for -lcrt0.o
collect2: ld returned 1 exit status


知道发生了什么吗?我是否在做些完全疯狂的事情?

最佳答案

后代的社区Wiki答案,来自以下评论:

通常,OS X可执行文件会动态链接到系统提供的库。静态链接远没有Linux上常见。您可以在可执行文件上运行otool -Lv以查看其动态加载的库。如果它们全都位于/usr/lib/System/Frameworks中,而不是您安装的东西,那么您可能已经确定了。

实际上,根据this answer,mac系统库的静态链接是完全不允许的。

关于haskell - 是否可以在OS X上静态链接Haskell应用程序?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15049553/

10-10 00:05