小编Las*_*nyi的帖子

如何在C库中嵌入C++库?

我有一个问题涉及将一个库嵌入另一个库中.

我有一个纯C代码,我的用户依赖它,他们不想依赖C++库.但是,需要将第三方库(ICU)嵌入到我的库中.没有ICU功能会被导出,它们只会在我的库内部使用.不幸的是,ICU是一个C++库,虽然它有一个C包装器.ICU不使用异常,但它确实使用RTTI(抽象基类).

问题是如何创建我的静态库

  1. ICU嵌入在我的库中(所有对ICU函数的引用都在我的库中解析)
  2. 所有对libstdc ++的引用也都已解析,必要的代码嵌入到我的库中
  3. 如果用户甚至没有在他们的系统上安装libstdc ++,那么工作正常
  4. 如果用户确实碰巧在C++项目中使用我的库,则与他使用的libstdc ++(可能是系统libstdc ++)没有任何冲突.

这有可能吗?目标平台几乎都是:windows(我的库是动态的),以及所有类型的unix版本(linux,solaris,aix,hpux - 这里我的库需要是静态的).

gcc-4.5和更高版本确实有--static-libstdc ++,但据我所知,它只用于创建共享库或可执行文件,而不是静态库.

谢谢你的帮助!

c c++ linker static-linking

8
推荐指数
1
解决办法
726
查看次数

标签 统计

c ×1

c++ ×1

linker ×1

static-linking ×1