我对任何语言中的静态链接相当不熟悉,但我正在尝试静态链接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
知道怎么了?我做的事情完全疯了吗?
答案 0 :(得分:1)
后代的社区维基答案,源于评论:
通常OS X可执行文件动态链接系统提供的库;静态链接远不如Linux。您可以在可执行文件上运行otool -Lv
以查看它动态加载的库。如果他们全部在/usr/lib
或/System/Frameworks
并且他们不是您安装的东西,那么您可能已经很好了。
事实上,根据this answer,mac系统库的静态链接是不允许的。