Chinaunix
标题:
请教ldd undefined symbol错误
[打印本页]
作者:
gtbml
时间:
2008-07-07 14:25
标题:
请教ldd undefined symbol错误
在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++编译项不怎么了解,弄了几天都不知道怎么做了,希望大家多给点帮助,谢谢了。
作者:
net_robber
时间:
2008-07-07 15:04
库版本不对
开发环境和运行环境不一样吧?
作者:
gtbml
时间:
2008-07-07 15:37
标题:
回复 #2 net_robber 的帖子
环境是换了,以前是在aix中编译的,现在修改了一下Makefile文件,想在Linux中编译,使程序能支持多平台的。能具体说说还需要修改那些地方么?
作者:
gtbml
时间:
2008-07-08 16:04
没有人碰到相关的问题么?
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2