我有一段C/C++代碼,它將__thread關鍵字用於線程本地存儲,但無法在64位Solaris Sparc上進行編譯g ++(版本4.0.2),而它編譯並在g ++ 34編譯器上運行linux。下面是源代碼的示例:如何使用g ++編譯64位solaris sparc上的線程本地存儲(TLS)
__thread int count = 0;
編譯器信息從 '克++ -dumpversion' 命令返回 '4.0.2' 和 'G ++ -dumpmachine' 節目 'Sun SPARC的-solaris2.8'。 'uname -a'顯示'SunOS devsol1 5.9 Generic_118558-26 sun4u sparc SUNW,UltraAX-i2'。
的錯誤信息,同時運行使與G ++是:「錯誤:線程局部不支持此目標存儲」,以及編譯器選項我使用的是
-m64 -g -fexceptions -fPIC -I../fincad -I/usr/java_1.6.0_12/include -I/usr/java_1.6.0_12/include/solaris -I/opt/csw/gcc4/lib/sparcv9 -I/opt/csw/gcc4/lib/gcc/sparc-sun-solaris2.8/4.0.2/sparcv9 -I. -I/usr/include -I/usr/include/iso -I/usr/local/include
任何幫助是非常讚賞,因爲我在週末一直在苦苦掙扎,並且正面臨期限。
感謝, 查爾斯
確實http://www.opengroup.org/onlinepubs/009695399/functions/pthread_setspecific.html工作? – Anycorn 2010-11-08 14:25:34