现在是2021年,Oracle不支持使用6年前发布的编译器abi的现代操作系统吗?
$ make -f demo.mk
rm -rf SunWS_cache
rm -rf cdemo81 cdemo81.o occidml occidml.o occiobj occiobj.o occiobjo* occiobjm* occiobj.h occiobjout.type
/usr/bin/gcc -c -I../include -DLINUX -D_GNU_SOURCE -D_REENTRANT -g cdemo81.c
/usr/bin/g++ -o cdemo81 -g cdemo81.o -L../../ -locci -lclntsh -lpthread
make -f demo.mk buildocci OBJS=occidml.o EXE=occidml
rm -rf SunWS_cache
/usr/bin/g++ -c -I../include -DLINUX -D_GNU_SOURCE -D_REENTRANT -g occidml.cpp
/usr/bin/g++ -o occidml -g occidml.o -L../../ -locci -lclntsh -lpthread
occidml.cpp:291: error: undefined reference to 'oracle::occi::SQLException::getMessage[abi:cxx11]() const'
occidml.cpp:63: error: undefined reference to 'oracle::occi::SQLException::getMessage[abi:cxx11]() const'
occidml.cpp:83: error: undefined reference to 'oracle::occi::SQLException::getMessage[abi:cxx11]() const'
occidml.cpp:106: error: undefined reference to 'oracle::occi::SQLException::getMessage[abi:cxx11]() const'
collect2: error: ld returned 1 exit status
默认的libocci.so.19.1与g++ 5及以上版本不兼容。请联系Oracle技术支持以获得专门构建的libocci,以便与g++ 5及以上版本一起使用。
对于支持的Linux平台,请尝试
make -f demo_rdbms。mkoccidemos(用于构建所有OCCI演示)
make -f demo_rdbms。mkoccidml(用于像occidml一样构建一个演示)
make -f demo_rdbms。mkbuildoci EXE=myapp OBJS=myapp. EXEo(用于定制.cpp程序)
以上是常规安装。你没有提到你正在尝试的OCCI版本和g++的版本。