免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5345 | 回复: 3
打印 上一主题 下一主题

请教ldd undefined symbol错误 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-07-07 14:25 |只看该作者 |倒序浏览
在linux下编译后生成的3dpro.so,运行ldd -r 3dpro.so显示下面错误:
linux-gate.so.1 =>  (0xb7f52000)
        /etc/libcwait.so (0xb7e19000)
        libclntsh.so.9.0 => /opt/oracle/product/9.2.0.4/lib/libclntsh.so.9.0 (0xb7448000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb735f000)
        libnsl.so.1 => /lib/libnsl.so.1 (0xb7331000)
        libpthread.so.0 => /lib/libpthread.so.0 (0xb7319000)
        libdl.so.2 => /lib/libdl.so.2 (0xb7314000)
        libACE.so.5.5.0 => /opt/ACE_wrappers/ace/libACE.so.5.5.0 (0xb71be000)
        libm.so.6 => /lib/libm.so.6 (0xb7196000)
        libc.so.6 => /lib/libc.so.6 (0xb703f000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7034000)
        libwtc9.so => /opt/oracle/product/9.2.0.4/lib/libwtc9.so (0xb7031000)
        /lib/ld-linux.so.2 (0x80000000)
        librt.so.1 => /lib/librt.so.1 (0xb7028000)
undefined symbol: _ZN26LT_LastInvestQueryResponseC1Ev   (./3dpro.so)
undefined symbol: _ZN11LT_Response10setRetCodeESs       (./3dpro.so)
undefined symbol: _ZN11LT_Response9fillValueESsSs       (./3dpro.so)
undefined symbol: _ZN25LT_LastInvestQueryRequestC1ERK10LT_Request       (./3dpro.so)
undefined symbol: _ZN25LT_LastInvestQueryRequest8getDevIdEv     (./3dpro.so)
undefined symbol: _ZN10LT_Message10getMessageEv (./3dpro.so)
undefined symbol: _ZN11LT_Response10getRetCodeEv        (./3dpro.so)
undefined symbol: _ZN10LT_Message8getMsgIdEv    (./3dpro.so)
undefined symbol: _ZN16LP_ThreadContext13getSqlContextEv        (./3dpro.so)
undefined symbol: _ZN11LP_DbCommon9db_commitEPv (./3dpro.so)
undefined symbol: _ZN25LT_LastInvestQueryRequest9getGameIdEv    (./3dpro.so)
undefined symbol: _ZN26LT_LastInvestQueryResponse9setGameIdERKSs        (./3dpro.so)
undefined symbol: _ZN26LT_LastInvestQueryResponse10setIssueIdERKSs      (./3dpro.so)
......
......
相关的Makefiel文件内容如下:
CC   = g++ -g
LIBPUB_PATH       = $(WORK_V2)/lottsrv/lib
LIBSO_TARGET_PATH = $(WORK_V2)/lottsrv/gamesrv/lib
CIN=/usr/lib/gcc/i386-pc-linux/4.2.1

INCLDIRS = -I$(ACE_ROOT) -I$(LIBPUB_PATH)

LINKFLAGS = -shared  

DEFS = -mcpu=i486
CCFLAGS = -DIPS_DEBUG -Wall -mcpu=i486 $(DEFS)

LDFLAGS = -Xlinker -rpath -Xlinker -ftemplate-depth-128 \
          -Wall -D_REENTRANT -fPIC \
          -L$(ORACLE_HOME)/lib -lclntsh \
          -L$(CIN) -lstdc++ -lnsl -lpthread -lm -lc -ldl \
          -L$(ACE_ROOT)/lib -lACE \
          -L$(ACE_ROOT)/ace -lACE \
          -L$(LIBPUB_PATH) -llottpub -ldbcommon -lencrypt -llottproto -lbasepro -loracle9i3d

SO_TARGET = 3dpro.so

OBJS   = LT_3DGameProcess.o LT_3DTicket.o LT_3DWinSearch.o LT_3DPrize.o LT_3DPrizeCalculator.o \
                  LT_3DTicketCode.o LT_3DWinCode.o LT_3DDataChange.o               

.SUFFIXES: .cpp .o

all: $(SO_TARGET)

.cpp.o:
        $(CC) $(INCLDIRS) $(CCFLAGS) -c $*.cpp

$(SO_TARGET): $(OBJS)
        $(CC) $(LINKFLAGS) -o $(SO_TARGET) $(OBJS) $(LDFLAGS)
        @chmod a+rx $(SO_TARGET)

install:
        cp $(SO_TARGET)                                      $(LIBSO_TARGET_PATH)

clean:
        rm $(OBJS)
        rm $(SO_TARGET)
        rm $(LIBSO_TARGET_PATH)/$(SO_TARGET)
由于对G++编译项不怎么了解,弄了几天都不知道怎么做了,希望大家多给点帮助,谢谢了。

论坛徽章:
0
2 [报告]
发表于 2008-07-07 15:04 |只看该作者
库版本不对

开发环境和运行环境不一样吧?

论坛徽章:
0
3 [报告]
发表于 2008-07-07 15:37 |只看该作者

回复 #2 net_robber 的帖子

环境是换了,以前是在aix中编译的,现在修改了一下Makefile文件,想在Linux中编译,使程序能支持多平台的。能具体说说还需要修改那些地方么?

论坛徽章:
0
4 [报告]
发表于 2008-07-08 16:04 |只看该作者
没有人碰到相关的问题么?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP