我有一个$client->request('GET', '/get', [
'headers' => [
'User-Agent' => $_SERVER['HTTP_USER_AGENT'],
]
]);
代码,需要在不同的文件夹路径中加载同一共享库( .so )的多个实例。该共享库位于PASCAL中,包含用于加载外部 .so 的公共变量和dlopen调用(使用LoadLibrary函数)。
在我的GFORTRAN
代码中,我在GFORTRAN
中尝试了RTLD_LAZY=1
和RTLD_NOW=2
。它正在加载 .so ,但是我怀疑变量是共享的(如果我使用dlopen
在每个线程中运行每个实例,我会看到我为线程中的变量设置的值1被线程2)覆盖。
或者,我基于question和openMP
尝试了dlmopen
和LM_ID_BASE
,但是变量共享也遇到了同样的问题。当我第一次尝试LM_ID_BASE
并尝试第二次LM_ID_NEWLM
时,我得到
symbol lookup error: /home/selva/libclusol.so: undefined symbol: memset, version GLIBC_2.2.5
有什么建议吗?
注意:我的 .so 是使用FPC
构建的,它具有许多公共变量,loadlibrary
调用(内部使用dlopen
)和少量导出的函数我在GFORTRAN