c++ - C++ 线程本地存储 - 在不同的编译单元中使用相同的名称
问题描述
假设我们在某个编译单元中有以下代码,最终在 Linux (g++ 4.9) 上编译为共享库
namespace A {
class B {
static __thread MyObj *myobj;
};
}
所以这被编译成 .so 并且它不会导出这个符号(使用隐藏的可见性)。
现在,一个特定的应用程序具有正在使用的同一段代码。即相同的 cpp 编译单元与此应用程序链接,它也访问上述共享库。
问题 - 这 2 个 myobj 实例是否位于 TLS 中的 2 个不同地址中?我认为是的,但我看到可能与上述配置有关的问题。
解决方案
推荐阅读
- python - 如何根据条件选择 Selenium 中的前一个元素?
- flutter - 攻击者是否有可能在运行时操纵飞镖颤振应用程序?
- node.js - MongoDB Atlas 连接到 Compass GUI 但不连接到“应用程序”
- android - 应用程序未收到 Android 10 BOOT_COMPLETED 广播
- ios - 所需条件为假:IsFormatSampleRateAndChannelCountValid(format) 进入 react-native-community 语音
- vim - Vim 如何复制到真实(非相对)行号
- reactjs - 为什么我的代码类型会收到警告?“警告函数缺少返回类型”
- c# - .NET Framework:如何更新 System.Runtime?
- javascript - Babel-cli 没有编译 node_modules
- neural-network - 关于 Stacked BiLSTM(多层 BiLSTM)的问题