我需要部署到 Red Hat 4.1.2 机器(它有 gcc 4.1.2)。我在 Ubuntu 11.10 上使用 GCC 4.6.1 进行开发。不幸的是,我的构建过程创建的一些二进制文件在 RedHat 机器上不可用。原因似乎是 ABI 更改,根据另一个 Stackoverflow 问题,这是由于引入了 STT_GNU_IFUNC 符号。有没有办法防止导出任何此类符号,以便我的二进制文件可以使用旧的 ABI?我使用 nm 在我的二进制文件中查找任何“i”类型的符号,但没有找到。
我问这个是因为我构建的一些其他二进制文件以及一些第 3 方库(tbb、boost)没有使用新的 ABI,因此在 RedHat 机器上运行良好。
希望这很清楚。提前致谢。