使用 dlopen():
加载lib时出现此错误Cannot dlopen load module '/usr/lib/pa20_64/libpthread.1' because it contains thread specific data.
我在谷歌上看了这个,以下导出修复了它。
export LD_PRELOAD=/usr/lib/hpux64/libpthread.so.1
有人可以告诉我 LD_PRELOAD 究竟是什么以及我为什么要预先加载这个lib?为什么链接器没有加载它?
使用-lpthread进行编译也无济于事。
ENV: HP-UX hhtenb1 B.11.31 U ia64 3881169896无限用户许可证
答案 0 :(得分:0)
我无法告诉您有关HPUX的所有详细信息,但请尝试将您的程序与-lpthread链接 - 这可能会解决您的问题。
原来,你在dlopen()中的库似乎是在运行时挖掘以找到libpthread的一个版本。 LD_PRELOAD只是加载指定的库,就好像你已经对它们进行了操作一样,但它在程序有机会开始运行之前就完成了。
不确定细节,但有一个模糊的猜测:你正在使用的某个库在你的dlopen触发libpthread加载之前调用了pthread静态数据函数(但是为什么它会尝试加载pthread然后如果第一个库有它作为一个依赖? - 不确定/也许这表明前一个库静态链接了一些pthread内容?)。
答案 1 :(得分:-1)
我们在运行DB2-10.1.2并执行
的hpux-11.31 IA64上遇到此错误 "export LD_PRELOAD=/usr/lib/hpux64/libpthread.so.1"
修好了。
DATA #2 : String, 49 bytes
/home/db2inst1/sqllib/lib64/icc/libgsk8iccs_64.so
CALLSTCK: (Static functions may not be resolved correctly, as they are resolved to the nearest symbol)
[0] 0xC000000032488900 pdOSSeLoggingCallback + 0x980
[1] 0xC000000010CC5A00 ossLog + 0x4E0
[2] 0xC000000010CC5610 ossLog + 0xF0
[3] 0xC00000003255E100 _Z27cryptDynamicLoadGSKitCryptoPc + 0x5F0
[4] 0xC00000003255F460 cryptContextRealInit + 0x200
[5] 0xC000000032561950 cryptContextCheckAndInit + 0x130
[6] 0xC000000032561B70 cryptDHInit + 0x120
[7] 0xC00000003384FBD0 sqlexSlcServerEncryptAccsec + 0x170
[8] 0xC00000003384F7B0 _Z33sqlexSlcServerEncryptAuthenticateP14db2UCinterfacelPj + 0xF0
[9] 0xC0000000321FB7D0 _Z20sqlexAppAuthenticateP14db2UCinterface + 0x1A60
[10] 0xC0000000321F8920 _Z18sqljrDrdaArConnectP14db2UCinterface + 0x140
[11] 0xC0000000321E96F0 _Z16sqleUCdrdaARinitP14db2UCconHandle + 0x230
[12] 0xC000000032238CD0 sqleUCappConnect + 0x13C0
[13] 0xC000000032647B20 _Z14CLI_sqlConnectP15CLI_CONNECTINFOP5sqlcaP19CLI_ERRORHEADERINFO + 0x32A0
[14] 0xC0000000325D5710 _Z11SQLConnect2P15CLI_CONNECTINFOPhsS1_sS1_sS1_sh + 0xA10
[15] 0xC0000000325ADB90 _Z17SQLDriverConnect2P15CLI_CONNECTINFOPvPhsS2_sPsthhP19CLI_ERRORHEADERINFO + 0x26E0
[16] 0xC0000000325AAC00 _Z11SQLConnect1P15CLI_CONNECTINFOPhsS1_sS1_s + 0xB60
[17] 0xC0000000325A8E30 SQLConnect + 0xC10
[18] 0x4000000000001EA0 main + 0x620
[19] 0xC00000000006E9B0 _DYNAMIC + 0xC00000000006E993