Linux共享库

Kis*_*ala 2 c++ linux shared-libraries

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

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

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

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

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

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

请帮我...

Jon*_*ely 5

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

正确.

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

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

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

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