我想建立静态库和共享库在一个项目中。
我知道需要从使用 -fpic 编译的对象创建共享库以获得位置无关代码,而静态库不需要这个。这一切都很好,我可以创建共享库或静态库。
我不想编译我的源代码两次以获得不同的目标文件,那么这通常是如何完成的?我读如何基于静态库获取共享库。但是,该示例显示了使用 -fpic 构建的静态库。这是要走的路吗?这方面有什么需要注意的吗?
有没有共同方法编译静态库和共享库?例如。首先静态并基于lib创建共享版本?
我很想知道是否有不同的方法以及选择时要考虑的因素。
我在 Linux 上使用 gcc4.4。
提前致谢!
事实上,我见过的常见方法是编译你的源代码两次,一次有 PIC,一次没有。如果不这样做,您要么会在静态库中产生 PIC 开销,要么会得到操作系统无法重定位的共享对象(实际上意味着它不会在库的多个客户端之间共享)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)