首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

GCC链接选项-L,rpath-link跟-rpath

2012-09-08 
GCC链接选项-L,-rpath-link和-rpathOpenWrt中编译qtopia和qte2是会找不到uuid的库,需要特别地使用-luuid来

GCC链接选项-L,-rpath-link和-rpath

OpenWrt中编译qtopia和qte2是会找不到uuid的库,需要特别地使用-luuid来指定,即使用-L$(dir) -luuid。

然而如果使用-Wl,-rpath-link=$(dir)选项,则会自动搜索libuuid.so进行链接。



GCC里的链接器的选项是 -rpath 和 -rpath-link,看了下 man ld,大致是这个意思:

-L: “链接”的时候,去找的目录,也就是所有的 -lFOO 选项里的库,都会先从 -L 指定的目录去找,然后是默认的地方。

-rpath_link (或者 -rpath-link):这个也是用于“链接”的时候的,例如你显示指定的需要 FOO.so,但是 FOO.so 本身是需要 BAR.so 的,后者你并没有指定,而是 FOO.so 引用到它,这个时候,会先从 -rpath-link 给的路径里找。
-rpath: “运行”的时候,去找的目录。运行的时候,要找 .so 文件,会从这个选项里指定的地方去找。对于交叉编译,只有配合 --sysroot 选项才能起作用。

也就是说,-rpath指定的路径会被记录在生成的可执行程序中,用于运行时。
-rpath-link 则只用于链接时。




热点排行