如何构建独立于编译器的C ++库(适用于Solaris Studio和gcc)?

时间:2014-11-20 14:18:16

标签: c++ gcc extern solaris-studio

我想扩展我的库,目前只使用gcc编译,也可供Solaris Studio使用。

我的想法是做以下事情:

  1. 在C中编写包装函数,使用 extern C 链接公开界面的相关部分。
  2. 然后使用gcc构建此库。由此产生的c-header和binary是独立于编译器的,因为不再存在名称错误。
  3. 包含c-header并链接到使用Solaris Studio编译的项目。
  4. 问题:这是一种可行的方法还是有更好的解决方案来解决这个问题?


    注意:除了名称修改外,还要注意problems related to exception handling

1 个答案:

答案 0 :(得分:1)

你的计划是正确的。

只要您的库公开了与平台ABI兼容的C API(C类型的大小和对齐,调用约定)并且不会抛出C ++异常,您就不会有使用其他编译器或语言链接库的麻烦。 / p>

您还可以为C API添加C ++标头仅包装器,以便从C ++和异常安全中轻松重用。