Linux共享库

时间:2015-03-13 14:37:02

标签: c++ linux shared-libraries

我是linux应用程序开发的新手。

我有两个库共享库libGetData.so和libProcessData.so。

我在Linux PC上运行两个不同的C ++应用程序作为A和B,并在两个应用程序中使用这两个库。

我在两个库中都有很少的静态变量。

但是,当我在应用程序A中的libGetData.so库中设置一个静态变量时,它没有反映在应用程序B中。

我的目标是在任何应用程序中使用共享库,并在该库中设置任何静态变量。同样的事情应该反映在使用相同库的其他应用程序上。

请帮帮我......

1 个答案:

答案 0 :(得分:5)

  

但是,当我在应用程序A的libGetData.so库中设置一个静态变量时,它没有反映在应用程序B中。

正确。

  

我的目标是在任何应用程序中使用共享库,并在该库中设置任何静态变量。同样的事情应该反映在使用相同库的其他应用程序上。

不,这不是共享库的工作方式。

共享库允许库的不变部分由多个进程共享,但这纯粹是操作系统级别的实现细节。他们意味着进程共享一个地址空间。不同流程中的变量是不同的,不共享。

要让进程通信,他们需要使用某种形式的Inter-Process Communication (IPC),例如管道,套接字或共享内存(与共享库无关)。