EDA365电子论坛网

标题: linux程序怎样同时链接动态库与静态库,看过来 [打印本页]

作者: mytomorrow    时间: 2019-10-10 12:29
标题: linux程序怎样同时链接动态库与静态库,看过来
( A: I; w, g/ f1 h2 f: `
在应用程序需要连接外部库的情况下,linux默认对库的连接是使用动态库,在找不到动态库的情况下再选择静态库。使用方式为:
4 t/ I& t5 a# q! O1 A6 T- w" T( q8 S
gcc test.cpp -L. -ltestlib
0 _6 W7 E0 {# i# O- @0 y) d. r* R1 \% m6 V, u
如果当前目录有两个库libtestlib.so libtestlib.a 则肯定是连接libtestlib.so。如果要指定为连接静态库则使用:
0 y: F" A; _; |4 j9 c7 {8 _0 r% B
8 k8 z8 {+ F, h( Hgcc test.cpp -L. -static -ltestlib
" Y% ?$ M% W7 ~5 ]% j4 z/ e$ u3 @5 E& D1 c) j# [% C, }
使用静态库进行连接。- Y$ ~5 R( D7 b1 E5 E" m  K

; `! r1 f' |2 U/ s7 B( d3 G& X# w$ M' m* d  s. x5 c
当对动态库与静态库混合连接的时候,使用-static会导致所有的库都使用静态连接的方式。这时需要作用-Wl的方式:
4 ?/ A3 F1 ^9 f, W- e1 S$ ^' @9 h, T# e6 I

2 T5 ]+ x% s$ c! {$ ]+ K7 Q- U3 z9 [5 W  x- E7 u- M2 g$ `% L
' w0 ~6 G1 s* C9 u! }+ b' I

" {" g1 _1 G& i! p
作者: helendcany    时间: 2019-10-10 22:54
看看。




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2