我今天在读某大牛的技术博客的时候知道,gcc有个rpath选项。
干什么用的呢?
我以前写程序,想把程序中的某部分写成动态库的形式。但是在调用此动态库的时候,程序会在系统目录中找。那么我只有两种方式解决:
1、把我写好的动态库放到系统目录里。缺点:1a、系统目录被搞的很混乱。1b、在别人电脑上部署会很麻烦。
2、指定LD_LIBRARY_PATH环境变量。缺点:不能直接启动应用程序而需要外部shell启动。
今天,我了解到,gcc在链接的时候有个rpath选项。它可以把动态库的路径直接写到elf文件中去。这样可以将rpath写成相对路径。方便部署。
参考文章:http://www.xxlinux.com/linux/article/development/soft/20070925/9913.html