同时连接动态库和静态库
作者:
| 更新日期:有时候我们编译程序时希望手动决定链接静态库还是动态库,这里记录一下。
本文首发于公众号:天空的代码世界,微信号:tiankonguse
大家好,这里是tiankonguse的公众号(tiankonguse-code)。
tiankonguse曾是一名ACMer,现在是鹅厂视频部门的后台开发。
这里主要记录算法,数学,计算机技术等好玩的东西。这篇文章从公众号tiankonguse-code自动同步过来。
如果转载请加上署名:公众号tiankonguse-code,并附上公众号二维码,谢谢。
零、背景
假设我们需要使用一个库,动态库和动态库我们都有,这个时候可能会出现我们不希望发生的事情,所以需要手动制定了。
一、原理
linux下链接库时使用-L
来指定路径,使用-l
来指定库名。
默认情况下优先找动态库,找不到了再找静态库。
二、指定库
如果直接使用-static
或者-dynamic
会使所有库都使用这种形式链接,显示不是我们想要的。
当我们想要为某些库链接静态库,某些链接静态库,其余的按默认链接,则需要下面的样子。
-L./lib/test/ -Wl,-Bstatic -ltest #指定静态库
-L./lib/test/ -Wl,-Bdynamic -ltest #指定动态库
-Wl,-Bdynamic #回复默认设置
三、结语
好了,看到这里差不多就可以动态指定库了.
参考资料:
man gcc
man ld
对了现在开通了公众号和小密圈。
博客记录所有内容。
技术含量最高的文章放在公众号发布。
比较好玩的算法放在小密圈发布。
小密圈这周接受免费加入,欢迎大家加入看各种算法的思路。
长按图片关注公众号,接受最新文章消息。
本文首发于公众号:天空的代码世界,微信号:tiankonguse
如果你想留言,可以在微信里面关注公众号进行留言。