我正在尝试链接到 OS X 上的静态库。我使用了-static
在 gcc 命令中标记,但我收到以下错误消息:
ld_classic: can't locate file for: -lcrt0.o
collect2: ld returned 1 exit status
我查看了手册页,内容如下:
除非所有库(包括 libgcc.a)也使用 -static 进行编译,否则此选项在 Mac OS X 上不起作用。由于既没有提供静态版本的 libSystem.dylib 也没有提供 crt0.o,因此此选项对大多数人来说没有用。
还有另一种方法可以链接到这个静态库吗?
为了链接到存档库(有时也称为静态库),只需将其添加到链接行:
gcc main.o ... -lfoo ...
链接器将搜索 libfoo.dylib,然后搜索 libfoo.a,这就是您所需要的。
如果你有both库的版本,并且想要链接到存档版本而不是动态版本,只需在链接行上指定存档的完整路径:
gcc main.o ... /path/to/libfoo.a ...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)