c++ - 链接使用不同版本的 gcc 编译的库

标签 c++ gcc compilation compatibility

我有一个 C++ 软件(Borealis 流引擎),它已编译并可与 GCC 3.3.6 一起使用(我无法使其与较新版本的 GCC 一起使用,并且不再支持该软件) .

我喜欢扩展它来调用一些复杂的密码库(基于配对的库),这些库绝对是用最新版本的 GCC 编译的。

我的问题是是否可以这样做,即从使用旧版本 GCC 编译的代码中调用使用新版本 GCC 编译的库?技术上可行吗?潜在的问题是什么?

我希望有人能帮助阐明这些问题,这样我就可以避免花费数天(甚至数周)编译和学习如何使用这些软件,最后却发现它们无法协同工作。

最佳答案

是的。如果不是,我们就会遇到严重的问题。编译器的版本与平台的 ABI 无关。

(在 C++ 编译器的情况下,实际上可能会破坏的一件事是名称修改约定的更改,但是,例如,对于 C,即使这种风险也不存在。)

关于c++ - 链接使用不同版本的 gcc 编译的库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14587110/

相关文章:

java - 为 armeabi 编译的文件是否有 armeabi-v7a 的一些问题

c++ - 运算符<和严格的弱排序

gcc - 在 gcc 中链接到 so 库

c++ - 从源文件构建 gcc 时如何确定正确的头文件 (libstdc++-v3 build)

java - Google 云端硬盘 Java API

c++ - boost::mpl::integral_c 之类的模板可以注册到 Boost.Typeof 吗?

c++ - C++ 代码片段的大 O 表示法和时间复杂度

java - hs_err_pid 文件中指定的堆的不同部分是什么?

emacs - 在 Snow Leopard 上编译 Emacs

android - 为 Android 编译 libpurple