关于GCC中一起运用动态和静态库链接的操作参数和解说ITeye - 凯发娱乐

关于GCC中一起运用动态和静态库链接的操作参数和解说ITeye

2019年03月01日12时36分52秒 | 作者: 寄容 | 标签: 参数,链接,静态 | 浏览: 1819

This is important, because otherwise the compiler driver program may silently drop the linker options, resulting in a bad link.

 

实际上首要针对隐式使用LINKER的参数,用“-Wl,”来标识,,“startgroup foo.o bar.o -Wl,endgroup”表明一组,,-Bstatic -Bdynamic 作为关键字与-WL,不可分,在GCC衔接库时,默许链接是动态链接,现在用上面的指令约束在链接sqlite库时选用静态链接。

 

-Bstatic 还有三个写法: -dn和-non_shared 和-static

-Bdynamic 还有两个写法:-dy 和-call_shared

上面参数“-L/usr/local/sqlite-arm-linux/.libs ”放不放在-Wl,...之间无所谓,由于它仅仅供给了sqlite动静态库的方位。能够改成下面的参数方式,更直观。

 

-L/usr/local/sqlite-arm-linux/.libs -L/usr/local/arm/3.3.2/lib -Wl,-dn -lsqlite -Wl,-dy  

 

-Wl,-dn 和 -Wl,-dy成对呈现才干起到标题所说的效果。  

 

关于-Wl,后边的参数还有许多,悉数理解我也不能。

 

还有一个问题值得注意,在-Wl,后边不能有空格,不然会犯错!

 

关于-Wl,option 阐明还有一段阐明

 

GCC指令参数的英文原文

 

-Wl,option

Pass option as an option to the linker. If option contains commas, it is split into multiple options at the commas.

传递参数option作为linker的一个参数,假如option包括逗号,将在逗号处置割成几个参数。

 

例如:

-Wl,-dn –lsqlite

-dn 开端静态链接

-lsqlite 静态链接sqlite库

静态链接完后,然后需求动态链接

-Wl,-dy

重新开端动态链接。

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表凯发娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章