Oracle19c/OCCI-12.2编译cpp代码报错:ORA-24960:the attribute OCI_ATTR_USERNAME is greater than the maximum

文章目录

  • 1 报错
  • 2 解决办法
    • 2.1 方法一
    • 2.2 方法二

1 报错

ORA-24960: the attribute OCI_ATTR_USERNAME is greater than the maximum allowable length of 255
Oracle19c/OCCI-12.2编译cpp代码报错:ORA-24960:the attribute OCI_ATTR_USERNAME is greater than the maximum_第1张图片

2 解决办法

2.1 方法一

gcc版本高于5.0时,使用occi会报错:ORA-24960: the attribute OCI_ATTR_USERNAME is greater than the maximum allowable length of 255

在代码第一行,增加

#define _GLIBCXX_USE_CXX11_ABI 0

2.2 方法二

错误原因: oracle12系列并不支持rhel8, 从官网的系统支持可以看到。centos8和rhel8使用的是同一个内核。

默认情况下,gcc编译时只会查找相应的头文件,而不会连接具体的lib。也就是说只要在include头文件中有类和函数的定义就可以了,不会检查是否实现,但是运行时就会去检验。

而occi库由gcc-4编译得到,与gcc-8在对于string类的处理上存在兼容性问题。解决办法是: ide降级,即gcc-8改为gcc-4.8.5, 或者安装devtool, 实现多编译器运行。

可以使用rpm包降级,也可以使用gcc-4.8.5.tar.gz进行安装。

你可能感兴趣的:(数据安全传输基础设置平台项目,linux,运维,服务器)