我对任何语言的静态链接都不熟悉,但是我试图静态链接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/