makefile文件中使用:
CPP_COMP=xlc++_r
CPPFLAGS=-q64 -bh:5 -lC -g -qcpluscmt -ma -D_THREAD_SAFE -DAIX -D__BIGMSGQUEUE_ENABLED -DPLATFORM_TYPE=PLATFORM_TYPE_AIX -DMACHINE_WORD=64 -lhmu
OBJS = pubinterface.o pubinterHash.o
all : libinterpubfun2.so
libinterpubfun2.so:$(OBJS)
$(CPP_COMP) $(CPPFLAGS) $(INCLUDE) -b -o $@ $(OBJS)
编译时报错:
xlc++_r -q64 -bh:5 -lC -g -qcpluscmt -ma -D_THREAD_SAFE -DAIX -D__BIGMSGQUEUE_ENABLED -DPLATFORM_TYPE=PLATFORM_TYPE_AIX -DMACHINE_WORD=64 -lhmu -I. -o libinterpubfun2.so pubinterface.o pubinterHash.o
ld: 0711-317 ERROR: Undefined symbol: .main添加Oracle,OCI接口共享文件即可,开始没找到。
-lclntsh-locci-locci9 -L$(ORA_HOME)/lib
自问自答-_-///
感谢 猫哥,李勇2.
cppflags里面哪个是表示生成动态库的啊?Undefinedsymbol 缺符号,好好看看Makefile文件,从你贴出来的无法定位cppflags里-g标识生成动态库。
修改makefile文件后,cppflags里修改 -qmkshrobj上面的.main错误没有了。
但是提示,估计是什么库文件没有包含,找不到是什么库?还有find当前目录,也没发现那个文件使用了这些个方法:
ld:0711-317ERROR:Undefinedsymbol:.OCIInitialize
ld:0711-317ERROR:Undefinedsymbol:.SQLEnvGet
ld:0711-317ERROR:Undefinedsymbol:.SQLSvcCtxGet
ld:0711-317ERROR:Undefinedsymbol:.OCILobGetLength
应该是头文件缺失,具体缺什么文件还得找找,,,
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。