c - 在构建 libc(和其他库)时,GCC 的版本有多重要?

标签 c linux gcc embedded-linux libc

我正在尝试在我的主机上创建一个开发环境,该环境与使用 chroot 的嵌入式设备上的开发环境相同(或尽可能接近)。主机和目标机器都是 x86,所以我没有尝试交叉编译。我想在我的 chroot 中构建 GCC,然后使用构建 libc 和我的嵌入式设备上已有的任何其他库(以及我的可执行文件需要运行才能在设备上部署的任何其他库)。通过这种方式,我希望我的开发机器上的所有库都与适当版本的 libc 正确链接。

我的问题是 - 我知道嵌入式设备上的 libc 是 4.3.2,但是我使用相同版本的 GCC 在我的开发机器上本地构建库有多重要?如果我实际上使用更新的版本(即我的开发机器安装附带的版本,即 4.6.3)来构建这些库,是否会有任何潜在的并发症?

最佳答案

只要编译器版本之间的 ABI 没有改变,你应该没问题。在我的脑海里,C ABI 多年来没有改变,而 C++ ABI 自 3.4/4.0 以来就没有改变。 Check the official docs可以肯定。

关于c - 在构建 libc(和其他库)时,GCC 的版本有多重要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11504465/

相关文章:

linux - 在 Amazon EC2 实例上安装 librsync

gcc - 使用cygwin在Windows 7-64上编译gcc-7-20170212,==> wopen错误

c++ - 如何使用 Qt5 编写 C++11?

c - Emacs 在 switch 语句后缩进 break

并发 I/O - 缓冲区损坏、 block 设备驱动程序

linux - 如何使用 sed 识别多行中的模式

ruby - 为什么我在 ubuntu 11.04 上使用 rvm 安装 Ruby 1.9.3 时出错?

Android设置线程亲和性

c - C 中 switch 语句的开销

c - 带有 TCC 的 GNU Autotools