您的位置:首页 > 编程语言 > Qt开发

Ubuntu安装arm版本的Qt遇到error: thread-local storage not supported for this target

2014-08-26 18:59 549 查看



Ubuntu10.10安装arm版本的Qt遇到error: thread-local storage not supported for this target

用arm编译的时候却碰到如下错误:

thread/qthread_unix.cpp:117: error: thread-local storage not supported for this target

make[1]: *** [.obj/release-shared-emb-arm/qthread_unix.o] 错误 1

make[1]:正在离开目录 `/home/soft/qtenv/arm/src/corelib'

make: *** [sub-corelib-make_default-ordered] 错误 2

#


估计大家搜这个错误会发现只有这一种回答,所以几乎可以确定这方法是可行的

具体做法:
进入/src/corelib/thread目录,修改qthread_unix.cpp,
关闭HACE_TLS宏,代码中依靠这个宏的部分不会执行也就不会有错了。

我修改后是这样:

#if defined(Q_OS_LINUX) && defined(__GLIBC__) && (defined(Q_CC_GNU) || defined(Q_CC_INTEL))

#define H***E_TLS

#endif

#if defined(Q_CC_XLC) || defined (Q_CC_SUN)

#define H***E_TLS

#endif

#ifdef H***E_TLS

#undef H***E_TLS

#endif

#ifdef H***E_TLS

static __thread QThreadData *currentThreadData = 0;

#endif

红色的是我加的部分,这样就保证下面执行时没有H***E_TLS宏了。

参考:http://blog.csdn.net/wangyoufeng8889/article/details/21229837
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐