OCCI with GCC in SOLARIS



我们正在尝试将OCCI与GCC一起使用。OCCI是使用sunstudio编译器编译的。有没有可能将OCCI与GCC一起使用,而不是使用sun本机编译器CC?

您不能有效地混合使用多个C++运行时库。

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

C++ABI的稳定性:程序设计语言的发展

C++ABI

C++ABI包括C ABI。此外,它还包括以下内容功能:

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

  • 指向成员的指针布局

  • 传递隐藏函数参数(例如,此)

  • 如何调用虚拟函数:

    • Vtable内容和布局

    • 指向vtables 的指针在对象中的位置

    • 查找此指针的调整

  • 查找基类偏移

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

  • 管理模板实例

  • 名称的外部拼写("名称篡改")

  • 静态物体的构建和销毁

  • 抛出和捕获异常

  • 标准库的一些细节:

    • 实现定义的详细信息

    • 类型信息和运行时类型信息

    • 对成员的内联功能访问

您还可以添加不同的C++编译器来实现不同的名称篡改,从而使OCCI在Solaris上无法直接与GCC一起使用。

你可能会做一些事情,但你所做的任何事情充其量都是极其脆弱的。下一次操作系统或C++运行时更新可能会中断,您可能无法解决问题。

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

相关内容

  • 没有找到相关文章