代码之家  ›  专栏  ›  技术社区  ›  stefanB

如何检测我是否可以在一个盒子上运行为gcc4编译的可执行文件?

  •  0
  • stefanB  · 技术社区  · 17 年前

    在没有安装开发工具(例如,没有头,没有gcc)的生产Linux机器上,您如何确定它是否能够 处决 材料:

    • 为64位而不是32位可执行文件编译

    我们有一些遗留库,所以我们仍然使用gcc3.3.3,但正在迁移到gcc4.1.2,同事试图弄清楚如果我们可以执行用gcc4编译的东西,如何在新的远程设备上进行检测。

    3 回复  |  直到 17 年前
        1
  •  2
  •   shodanex    17 年前

    生成的代码应该运行良好。你可以试着跑 ldd

        2
  •  1
  •   Dean Povey    17 年前

    我认为你提到的问题是GNULD而不是gcc。为符号查找添加了一个新的哈希算法。您应该在gcc4中使用-Wl、-hash style=both或-Wl、-hash style=sysv(默认值)编译所有内容,这样您就不会有任何问题。从内存Redhat是唯一一个延迟到默认启用gnu哈希样式的发行版。

    如果这确实是您的问题,那么您可以通过以下操作来判断:

    objdump-t foo | grep“.hash”

    除非存在sysv哈希,否则将为空。

        3
  •  0
  •   stefanB    17 年前

    似乎没有一种简单的方法可以查看某些库的版本,以确定gcc4二进制文件是否可以正常运行。