c++ - 为什么 __thread 在使用 printf 语句时给出链接器错误?

标签 c++ multithreading pthreads sparc thread-local-storage

这是我的示例程序,

int main()
{
   static __thread int a;

   printf("\n %d",a);

   return 0;
}

在这个程序中,当 printf 语句被删除时,它连接正常。 当包含 printf 语句时,它会给出以下链接器错误

ld: fatal: relocation error: R_SPARC_TLS_LE_HIX22: file /var/tmp//ccwb2Cxc.o: symbol <unknown>: bad symbol type SECT: symbol type must be TLS

处理器:SUN-SPARC 操作系统:UNIX

最佳答案

据我所知,这是自 2006 年以来 Sun 链接器的一个已知问题。如果您将整数复制到本地(非线程),它对您有用吗?

关于c++ - 为什么 __thread 在使用 printf 语句时给出链接器错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37790212/

相关文章:

c++ - 技术上对象可以占用不连续的存储字节吗?

c++ - 使用 OpenMP 并行化 C++ 代码,并行计算实际上更慢

c++ - 添加 noexcept 会破坏二进制兼容性吗?

c++ - winapi 从函数的地址中获取损坏的名称

c++ - 基于时间间隔执行函数 C++

c++ - 将子线程同步到父线程管理的原子时间

java - 使用 ThreadLocal 与 Atomic

c - 仍然对 Pthreads 感到困惑

c - 使用 libmodbus 线程读取 COM 端口

c - 链表的 pthread 段错误 - 初学者