假设我们在某个编译单元中有以下代码,最终在 Linux (g++ 4.9) 上编译为共享库
namespace A {
class B {
static __thread MyObj *myobj;
};
}
所以这被编译成 .so 并且它不会导出这个符号(使用隐藏的可见性)。
现在,一个特定的应用程序具有正在使用的同一段代码。即相同的 cpp 编译单元与此应用程序链接,它也访问上述共享库。
问题 - 这 2 个 myobj 实例是否位于 TLS 中的 2 个不同地址中?我认为是的,但我看到可能与上述配置有关的问题。