inj*_*joy 8 c c++ linux open-source shared-libraries
例如,我需要生成一个共享库libXXX.so.
生成它的常用方法是什么?只使用-fPIC -shared?
我是否需要创建此库的软链接?我的意思是使用ln -s.
如果我更新共享库,即如何.从libXXX.so.1.2.3到libXXX.so.1.2.4,我的项目如何知道共享库已更新?我是否需要重新编译整个项目?
在Makefile中管理共享库的常用方法是什么?
我完全不明白这些问题.请帮我一个忙 :-)
您提出问题的主题非常广泛。您的大多数问题取决于您的环境,并且是否创建软链接取决于您将库保存在哪个文件夹中以及哪些进程可能需要访问它等。
请检查此链接和此链接,其中还提供了有关创建和使用共享库的详细说明。
对您的问题的一些简短回答:
生成它的常见方法是什么?只使用 -fPIC -shared ?
使用的选项取决于编译器。fPIC 有助于生成与位置无关的代码,并且共享使该库成为共享库。但是,除此之外,还有一些选项只能公开您决定从库中导出的符号,以及在库的全局符号之间创建强链接的选项(-symbolic)等。
我需要创建到该库的软链接吗?我的意思是使用 ln -s。
正如我上面提到的,这取决于您决定放置库的位置。常见的机制是将您的库保存在您选择的某个文件夹中,并在通常“已知”或可访问的文件夹(如 /usr/lib 等)中创建指向它的链接。
如果我更新共享库怎么办,即。从libXXX.so.1.2.3到libXXX.so.1.2.4,我的项目如何知道共享库已更新?我需要重新编译整个项目吗?
共享库的主要优点之一是您可以更新最新版本,而无需重新编译整个代码。同样,实现这一点取决于平台和编译器。
在Makefile中管理共享库的常用方法是什么?
谷歌中有无数的链接,我的链接也提供了一些基本的细节。
| 归档时间: |
|
| 查看次数: |
245 次 |
| 最近记录: |