如何在 Mac OS X 上创建 .c 文件的静态构建?当我尝试时:
gcc -o test Main.c -static
I get:
ld: library not found for -lcrt0.o
collect2: ld returned 1 exit status
Mac OS X 的 gcc 不支持它:
http://discussions.apple.com/message.jspa?messageID=11053384
也许“-static”标志在 MacOS X 上不起作用。并非 gcc 的所有功能都在 MacOS X 上实现。Apple 甚至不会在操作系统的未来版本中使用 gcc。
我不知道如何使用“-static”进行链接。我想不出有什么理由在 MacOSX 上这样做。如果我知道你为什么想使用“-static”,我可能会对这个问题更感兴趣。现在,我只是不明白。通过寻求帮助,您实际上是在为该项目寻求合作者 - 即使只有 10 分钟。你需要让我感兴趣。
And http://developer.apple.com/library/mac/#qa/qa2001/qa1118.html
Mac OS X 不支持用户二进制文件的静态链接。将用户二进制文件与 Mac OS X 库和接口的内部实现联系起来会限制我们更新和增强 Mac OS X 的能力。相反,支持动态链接(针对 crt1.x 链接)。例如,自动查找 crt0.o,而不是查找 crt0.o)。
我们强烈建议您仔细考虑静态链接的局限性,并考虑您的客户及其需求,以及您需要提供的长期支持。
更新:禁止的是静态二进制文件。但是您仍然可以编译一些静态库并将其与另一个程序一起使用。程序将与您的库静态链接,但其他库(如 libc)将是动态的,因此程序将是动态可执行文件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)