c++ - 您可以从 C 应用程序链接 C++ 库吗?

标签 c++ c static-linking

我已经使用我的 G++ 交叉编译器交叉编译了一个开源库(基于 C++)。我现在正尝试在使用我的 GCC 编译器构建的基于 C 的应用程序中使用输出的 .a 文件...这可能吗?

最佳答案

是的。确保您要使用的所有函数都是 extern "C"并且您只对要使用的函数使用基本类型。

如果您使用与 G++ 相同的 GCC 版本,那绝对没有问题。跨版本应该没问题,但可能会有非常小的不兼容性。新的 GCC (3.0+) 符合 Itanium ABI,所以它们会很好;他们就如何交换和格式化数据达成了二进制协议(protocol)。

关于c++ - 您可以从 C 应用程序链接 C++ 库吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6949284/

相关文章:

c++ - Boost记录器静态链接: Not Working

C++ - 临时变量及其生命周期

c++ - boost::context::basic_segmented_stack 不按需增长

C 无法将值分配给结构体字段

c++ - RapidJSON 库通过索引获取数组中的值

c++ - 静态链接到使用不同版本的 C 运行时库构建的库,好还是不好?

c++ - 在编译时检查 Eigen 类型保存的数据在内存中是否连续

c++ - 为 Jenkins 从 devenv(逐个项目)分离控制台输出

c - 如何使用一维访问 C 中的二维数组

c++ - 创建大小小于 1MiB 的静态二进制文件,可以从 S3 或 GCS 下载文件