If I compile my source code into a .so (shared library) on one Linux environment(say RHEL), will it work on other environments also without being recompiled?
Em geral, não. Você quer usar um sistema de construção que suporte a portabilidade. Autotools é o padrão. Uma alternativa é o Cmake.