动态库问题,请高手指点

lenghaijun1978 2014-05-12 06:00:34
redhat LINUX下编绎通过运行也正常,我将这个程序移到solaris下。程序编绎的时出现了问题。
其中动态库部份编绎是正常的。
Linking [../lib/liblwpr.so] ...
g++ -o ../lib/liblwpr.so AtomicBoolean.o AtomicInteger.o Buffer.o InputStream.o IPCMSQ.o IPCSEM.o IPCSHM.o Logger.o Object.o OutputStream.o Socket.o StringUtil.o Synchronized.o Utility.o CFile.o FileUtil.o StringBuffer.o ProgramOption.o ProcessUtil.o Thread.o RWMutex.o Mutex.o Semph.o EventMsqDispatch.o SimpleProcessPool.o MTNetServer.o STNetServer.o NetServer.o Resource.o ThreadPool.o TimerThread.o ConfigProperty.o ThreadLocal.o ProcessInfo.o -g -fPIC -m64 -shared -L../lib -ldl -lpthread
==========>> Dynamic Library File [../lib/liblwpr.so] Build Done!!!

但是链接动态库编绎其他程序的时候出现下面的问题:
g++ -g -Wall -Wno-format-y2k -m64 -DLINUX -D_REENTRANT -DARCH64 -I. -I../../include -o genconfig.o -c genconfig.cpp
Linking [../../bin/genconfig] ...
g++ -o ../../bin/genconfig genconfig.o -llwpr -g -Wall -Wno-format-y2k -m64 -L../../lib -ldl -lpthread
Undefined first referenced
symbol in file
__xnet_connect ../../lib/liblwpr.so
__xnet_sendto ../../lib/liblwpr.so
__xnet_socket ../../lib/liblwpr.so
nanosleep ../../lib/liblwpr.so
getsockname ../../lib/liblwpr.so
accept ../../lib/liblwpr.so
listen ../../lib/liblwpr.so
setsockopt ../../lib/liblwpr.so
sem_destroy ../../lib/liblwpr.so
recvfrom ../../lib/liblwpr.so
sem_init ../../lib/liblwpr.so
sem_post ../../lib/liblwpr.so
sem_wait ../../lib/liblwpr.so
inet_addr ../../lib/liblwpr.so
inet_ntoa ../../lib/liblwpr.so
__xnet_bind ../../lib/liblwpr.so
shutdown ../../lib/liblwpr.so
ld: fatal: symbol referencing errors. No output written to ../../bin/genconfig

用ldd检查liblwpr.so库
ldd ../../lib/liblwpr.so
linux-vdso.so.1 => (0x00007fff19bfd000)
libdl.so.2 => /lib64/libdl.so.2 (0x00002b3605aa9000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00002b3605cae000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00002b3605ec9000)
libm.so.6 => /lib64/libm.so.6 (0x00002b36061c9000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00002b360644d000)
libc.so.6 => /lib64/libc.so.6 (0x00002b360665b000)
/lib64/ld-linux-x86-64.so.2 (0x00000035ad000000)
请问哪位高手看一下,如何解决这个问题?
...全文
719 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 3 楼 lenghaijun1978 的回复:
问题已经解决了!
能说下怎么解决的吗
zhxianbin 2014-05-12
  • 打赏
  • 举报
回复
路径问题???
lenghaijun1978 2014-05-12
  • 打赏
  • 举报
回复
问题已经解决了!
lenghaijun1978 2014-05-12
  • 打赏
  • 举报
回复
Solaris下ldd liblwpr.so libdl.so.1 => /lib/64/libdl.so.1 libpthread.so.1 => /lib/64/libpthread.so.1 libstdc++.so.6 => /opt/csw/lib/64/libstdc++.so.6 libm.so.2 => /lib/64/libm.so.2 libgcc_s.so.1 => /opt/csw/lib/64/libgcc_s.so.1 libc.so.1 => /lib/64/libc.so.1 /lib/sparcv9/../libm/sparcv9/libm_hwcap1.so.2 /platform/sun4v/lib/sparcv9/libc_psr.so.1
lenghaijun1978 2014-05-12
  • 打赏
  • 举报
回复
更正一下,上面那个ldd的结果是redhat linux下的。

1,543

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 Solaris
社区管理员
  • Solaris
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧