如何编译C代码以在多个RHEL版本上运行

如何编译C代码以在多个RHEL版本上运行,c,linux,C,Linux,我有一个基于RHEL 5.8版(Tikanga)构建的C应用程序。我们有一个运行RHEL 6.3版(圣地亚哥)的新盒子。每当我尝试在新机器上运行应用程序时,我都会收到以下输出: myApp: error while loading shared libraries: libldap-2.3.so.0: cannot open shared object file: No such file or directory 我认为这是因为我在不同的RHEL版本上编译了我的应用程序,而不是在我试图运行它

我有一个基于RHEL 5.8版(Tikanga)构建的C应用程序。我们有一个运行RHEL 6.3版(圣地亚哥)的新盒子。每当我尝试在新机器上运行应用程序时,我都会收到以下输出:

myApp: error while loading shared libraries: libldap-2.3.so.0: cannot open shared object file: No such file or directory

我认为这是因为我在不同的RHEL版本上编译了我的应用程序,而不是在我试图运行它的版本上编译,因为RHEL版本6.3(圣地亚哥)在/lib64中有我需要的LDAP库的不同版本,即libldap-2.4.so.2。不需要简单地安装旧的libldap-2.3.so.0库(由于管理原因,这是不可能的),有没有一种方法可以抽象库依赖性,这样我就可以编译不依赖于库的特定版本的代码?

您可以在目标平台上重建它吗?最好不必多次编译应用程序。如果无法进行抽象,我们将选择在目标平台上重建。您可以链接到libldap.so并让/usr/lib中的链接解决问题吗?您实际上是如何链接的?你能给我们看一下命令吗?看一个非常类似的问题。。。。