假设我在 C++ 中有一个巨大的库(具有大量依赖项,在 GCC 下完整构建需要大约 3 小时)。我想在该库的基础上进行构建,但不想在 C++ 中这样做,而是使用更高效的语言。我如何才能真正桥接或包装那个 extern lib 包,以便我可以用另一种语言访问它并在它之上编程?
考虑的语言:
迅速
走
我发现,这两种语言确实为 C 库和代码提供了自动桥接或包装(我实际上不知道包装/桥接之间的区别)。所以,如果我有一些 c 代码,我可以将它放在同一个 Swift 或 Go 项目中,并可以在我的项目中通过简单的导入来使用它。
然而,这不适用于两种语言的 C++ 代码。所以我用谷歌搜索了如何将 C++ 库转换为 C 代码或生成自动包装器。我发现了以下内容:
swig.org - C++ 库的自动包装器
Comeau C++ 编译器 - 自动将 C++ 转换为 C 代码
LLVM - 应该能够接受任何输入并将其转换为LLVM 能够提供的任何输出。
题:
如果使用自动包装或自动桥接,在 Swift / Go 等其他语言的如此庞大的库之上构建是否甚至在可用/现实/可管理的领域?
列出的 3 个库 / 程序 / 框架中的哪一个最适合 C++ -> C 的过程(因为 Swift 和 Go 都提供 C 自动包装)。
有没有比我目前考虑的更好的选择?
仅仅“坚持使用 C++”会更好吗,因为使用任何其他工具来进行包装/桥接过程将远远超过使用 Swift / Go 等更高效语言的好处?
谢谢:)
免责声明:也可以在 C 中手动包装 C++ 库,但对于如此庞大的库来说,这将花费大量的工作。
精慕HU
千巷猫影
相关分类