OCCI与SOLARIS的GCC

时间:2016-05-30 14:49:44

标签: oracle unix solaris occi

我们正在尝试将OCCI与GCC结合使用。 OCCI使用sun studio编译器编译。有没有可能使用OCCI与GCC而不是太阳本地编译器CC?

1 个答案:

答案 0 :(得分:0)

您实际上无法混合多个C ++运行时库。

C ++运行时实现非常复杂。这篇文章解释了一些复杂性:

Stability of the C++ ABI: Evolution of a Programming Language

  

C ++ ABI

     

C ++ ABI包含C ABI。此外,它还包括以下内容   特性:

     
      
  • 分层类对象的布局,即基类和虚拟基类

  •   
  • 指向成员的指针布局

  •   
  • 传递隐藏的功能参数(例如,这个)

  •   
  • 如何调用虚函数:

         
        
    • Vtable内容和布局

    •   
    • 指向vtable指针的对象中的位置

    •   
    • 查找此指针的调整

    •   
  •   
  • 查找基类偏移量

  •   
  • 通过指向成员的指针调用函数

  •   
  • 管理模板实例

  •   
  • 名称的外部拼写(“名称修改”)

  •   
  • 构建和销毁静态对象

  •   
  • 投掷和捕捉异常

  •   
  • 标准库的一些细节:

         
        
    • 实施定义的详细信息

    •   
    • typeinfo和运行时类型信息

    •   
    • 对成员的内联功能访问

    •   
  •   

您还可以添加不同的C ++编译器,以不同的方式实现名称修改,使得在Solaris上直接使用OCCI实现OCCI是不可能的。

你可能会得到一些有用的东西,但你所做的任何事情都会极其脆弱。下一个操作系统或C ++运行时更新可能会破坏问题,您可能无法解决问题。

除非您编写非常简单的应用程序,否则我强烈建议您只使用Solaris Studio编译器 - 并熟悉包括性能分析,内存检查甚至竞争条件检测在内的整套工具,其中大部分都是在我看来,优于GCC使用的工具。