我正在研究创建“模型”的代码。模型是从 XML 文件创建的,其部分表示是动态生成的 C 代码。这段 C 代码被即时编译成一个动态加载的共享库(使用 POCO 共享库类)。共享库主要包含小函数,模型创建的一部分是填充指向这些函数的函数指针。这一切都很好。但是,同时创建多个模型会导致问题。
我相信这与动态加载在 Linux 上的工作方式有关,以及每个共享库都包含具有相同名称的函数这一事实。PIC会导致这个吗?这些问题毫无意义地表现在从共享库函数中检索数据。
所以问题是,如何在 linux 上加载多个(数千个)包含相同函数名的共享库?
以上在 Windows 上运行良好,似乎动态加载的库数据/函数彼此完全隔离。