3

我对任何语言的静态链接都相当陌生,但我正在尝试静态链接 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

知道怎么了?我在做一些完全疯狂的事情吗?

4

1 回答 1

1

Community-wiki 对后代的回答,来自评论:

通常,OS X 可执行文件会动态链接到系统提供的库;静态链接远不如在 Linux 上常见。您可以otool -Lv在可执行文件上运行以查看它动态加载的库。如果它们都在里面,/usr/lib或者/System/Frameworks它们不是你安装的东西,那么你可能已经没事了。

事实上,根据这个答案,mac系统库的静态链接是完全不允许的。

于 2016-03-19T06:57:50.417 回答