如何建立一个编译器无关的C ++库(用于Solaris Studio和GCC)?(How to bu

2019-10-21 07:41发布

我想延长我的图书馆,目前只编译使用gcc,通过的Solaris Studio中使用。

我的想法是做到以下几点:

  1. 写在C包装功能,这与暴露外部C键的界面的相关部分。
  2. 然后用gcc创办这家图书馆。 将所得的C-头和二进制是编译器无关,因为没有名称重整了。
  3. 包括C-标题和链接进了Solaris Studio中编译了该项目。

问:这是一个可行的办法或者是有没有更好的办法解决这个问题?


注:除了名字改编,还注意与异常处理的问题 。

Answer 1:

你的计划是正确的。

只要你的库公开一个C API与平台ABI兼容(尺寸和C类型的比对,调用约定),并不会抛出C ++异常你不会有烦恼使用其他的编译器或语言链接库中。

你还可以添加一个C ++头只包装为您的C API,使其易于由C ++可重用和异常安全。



文章来源: How to build a compiler-independent C++ library (for Solaris Studio and gcc)?