当前位置:  开发笔记 > IOS > 正文

强制链接到Xcode目标的库的静态链接?

如何解决《强制链接到Xcode目标的库的静态链接?》经验,为你挑选了2个好方法。

我的Xcode目标链接到hdf5库(使用Link Binary和Libraries构建阶段).libhdf5是使用MacPorts安装的,因此/ opt/local/lib包含库的动态(.dylib)和静态(.a)版本.

构建中的文本输出显示,正如预期的那样,-lhdf5构建的链接步骤中存在a.然而,gcc似乎将动态链接库放在静态上.有没有办法强制gcc(通过编译器开关或Xcode)与libhdf5.a静态链接?

我发现的唯一解决方案是将libhdf5.a复制到项目(或其他)目录并链接到该副本,从而避免在同一位置拥有动态和静态版本.



1> 小智..:

有这个完全相同的问题,尽管这是一个旧帖子,我想我会分享我必须做的工作.

通常你只是向链接器提供'-static'开关,然而,使用Xcode,这会导致包括crt在内的所有lib静态链接.我收到了错误:

can't locate file for: -lcrt0.o

当我试着这个.

对我有用的是取代:

-lmylib

/path/to/libmylib.a

注意:-l被删除.



2> yungchin..:

回应你对Eduard Wirch回答的评论:如果用-l/full/path/to/libhdf5.a替换-lhdf5,你也可以只为这一个库控制静态链接


根据给出的另一个答案,看起来实际上需要省略"-l".如果我包含它,链接器给我"ld:找不到-l/opt/local/lib/libhdf5.a的库",而只是传递路径"/opt/local/lib/libhdf5.a"而没有标志工作良好.
推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有