我有多线程应用程序,它在我的开发服务器(HP-UX)上运行良好。当它部署到客户端服务器时,它会出现以下错误:
. Process 16448. Starting (CONT) Thread: 0 /usr/lib/pa20_64/dld.sl:
Unsatisfied code ymbol 'pthread_create' in load module 'bin/CCQO'.
Killed
我喜欢客户服务器上的libpthread.1没有带nm命令的pthread_create方法。这来自客户端服务器:
/usr/lib/pa20_64 > nm -g libpthread.1 | grep 'pthread_cre'
[475] | 4611686018427436512| 1116|FUNC |GLOB |0|.text|__pthread_create_system
但是当我在开发服务器上运行相同的命令时,我得到以下输出:
[733] | 4611686018427467256| 2160|FUNC |GLOB |0| .text|__pthread_create_generic
[712] | 4611686018427467192| 64|FUNC |GLOB |0| .text|__pthread_create_system
[625] | 4611686018427467112| 64|FUNC |WEAK |0| .text|pthread_create
我尝试将库从我的服务器复制到客户端服务器,但它不起作用。
请知道我现在可以在我的机器和客户端机器上使用线程库的版本吗?
如何使用更新的库更新客户端计算机?
可以将我的库复制到其他服务器,解决问题吗?如果是,那么步骤是什么。
答案 0 :(得分:1)
我喜欢客户服务器上的libpthread.1没有使用nm命令的pthread_create方法。
您客户的libpthread.1
已损坏。也许客户运行strip
,或以其他方式骚扰客户。
可以将我的库复制到其他服务器,解决问题吗?
这可能会导致计算机无法启动,而且几乎可以肯定不这样做。
正确的解决方案是让客户的系统管理员从HP-UX介质中恢复系统库。