[请教] 加载动态库报错“ Connection_Init: 参照的符号没有找到”,此动态库由 3 个.o 文件生成,其中一个.o 文件是包含这个“ Connection_Init ”函数的,求解,谢谢了
在 sun 平台 Solaris10 运行一个程序需要加载“ libpsmdb.so ”,报错信息如下:
SERVICE(6010001) OBS-PS-1006:服务开通动态库装载错误(libpsmdb.so):error[couldn't load file "libpsmdb.so": ld.so.1: psagent_single: 致命的: 重定位错误: 文件 /tank/data1/obshlj/lib/libpsmdb.so: 符号 Connection_Init: 参照的符号没有找到]
“ libpsmdb.so ”由 3 个.o 文件生成( clogfile.o psmdb.o sockmdb.o ),报错符号对应函数在“ psmdb.cc ”文件里面能找到:
t5240-1 yanwei 22 % grep Connection_Init ./*
./psmdb.cc:int Connection_Init(Tcl_Interp *interp);
./psmdb.cc: if(Connection_Init(interp) != TCL_OK) {
如下是用 3 个.o 生成“ libpsmdb.so ”的命令
CC -I/tank/data/build/test1/obs61_vb3.3/platform/include -L/tank/data/build/test1/obs61_vb3.3/platform/lib -G -o libpsmdb.so clogfile.o psmdb.o sockmdb.o -ldes -laicrypt -lframe -lCrun -lm -lc -lnsl -lsocket
3 个.o 生成的命令:
CC -I/tank/data/build/test1/obs61_vb3.3/platform/include -L/tank/data/build/test1/obs61_vb3.3/platform/lib -I/tank/data/build/test1/obs61_vb3.3/platform/include -O -KPIC -I. -I/tank/data/build/test1/obs61_vb3.3/platform/include -I/aitools/include -c clogfile.cc -o clogfile.o
CC -DORACLE -DAIDB2 -DNO_CONST -DUSE_NON_CONST -g -I/tank/data/build/test1/obs61_vb3.3/platform/include -L/tank/data/build/test1/obs61_vb3.3/platform/lib -I/aitools/include -O -KPIC -c psmdb.cc -o psmdb.o
CC -I/tank/data/build/test1/obs61_vb3.3/platform/include -L/tank/data/build/test1/obs61_vb3.3/platform/lib -I/tank/data/build/test1/obs61_vb3.3/platform/include -O -KPIC -I. -I/tank/data/build/test1/obs61_vb3.3/platform/include -I/aitools/include -c sockmdb.cc -o sockmdb.o
请知道的 v 友帮忙解答,谢谢了
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.