mur*_*att 7 c++ gcc shared-libraries static-libraries building
我想在项目中构建静态库和共享库.
我知道需要从使用-fpic编译的对象创建共享库以获取位置无关代码,而静态库不需要这样.这很好,我可以创建共享库或静态库.
我不想两次编译我的源代码来获取不同的目标文件,那么这通常是怎么做的呢?我读了如何基于静态库获取共享库.但是,该示例显示了使用-fpic构建的静态库.这是要走的路吗?这有什么需要注意的吗?
是否有共同的方法来编译静态库和共享库?例如,首先是静态并基于lib创建共享版本?
我很想知道是否有不同的方法,以及选择时要考虑什么.
我在Linux上使用gcc4.4.
提前致谢!
事实上,我见过的常见方法是两次编译源代码,一次使用PIC,一次不使用.如果不这样做,您可能会在静态库中使用PIC开销,或者无法通过操作系统重新定位的共享对象(实际上意味着它不会在库的多个客户端之间共享).