亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Linux Shell > 正文

linux 下同名符號沖突問題解決方案

2020-07-27 18:53:46
字體:
來源:轉載
供稿:網友

linux 下同名符號沖突問題解決方案

最近的工作中遇到如下令人蛋疼的問題:

Linux 下有三個模塊aa、bb、cc,基本情況如下:

cc 編譯連接得到 cc.so 動態庫,cc 中有如下接口:

cc_fun { …… do();//調用名為do的cc模塊內部函數 …… }  

bb 編譯連接得到 bb.a 靜態庫,bb 中有如下接口:

bb_fun { …… handle = dlopen(cc.so, RTLD_LAZY);//加載cc.so pccfun = dlsym(handle, “cc_fun”);//獲取cc_fun函數指針 (*pccfun)();//調用cc_fun函數,此時應該會調用cc模塊中的do()函數 do();//調用名為do的bb模塊內部函數(與cc模塊中的do()函數同名,實現卻不相同) …… } 

aa 編譯后通過 -lbb 鏈接選項的方式連接 bb.a 得到 aa 可執行程序,并調用 bb.a 的接口函數 bb_fun():

main { …… bb_fun();//調用bb_fun函數 …… }  

工作中發現 aa 在運行時行為異常,總是有內存泄露和功能異常,通過定位發現問題集中在同名的 do() 函數上。通過輸出打印發現程序中兩次調用 do() 函數都調用到了 bb 模塊中的 do() 函數,而 cc 模塊中的 do() 函數從未被調用到,導致程序行為異常和內存泄露。

后經多方查證了解到因為 linux 程序中各個庫中的符號表最終都會加載到程序所在的全局符號表中,此時如果有同名符號就只能調用到第一個加載進來的符號,也就是說后邊加載的同名符號都會被之前的覆蓋。cc 模塊中的 do() 函數被 bb 模塊中的 do() 函數覆蓋了,所以無法被調用到。

廢話不多說。。。

在試驗過很多不滿意的方法之后,最終的解決方法如下:

1.在 cc 的 makefile 中加入 -Wl,-Bsymbolic -Wl,--version-script,version 的連接選項,意思是用 version 文件中的腳本指定其導出哪些函數。

2.version 文件的實現如下:

VERS{ global: cc_fun; local: *; }; 

意思是指定 cc 模塊只導出接口函數 cc_fun,其余函數都設為 local 不做導出。

將該文件保存在 makefile 所在目錄即可。

3.重新編譯連接三個模塊,問題解決。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久999精品视频| 亚洲午夜性刺激影院| 日韩视频亚洲视频| 亚洲人成欧美中文字幕| 欧美大片欧美激情性色a∨久久| 亚洲激情国产精品| 国产精品亚洲综合天堂夜夜| 国产精品视频999| 在线日韩精品视频| 性欧美办公室18xxxxhd| 国产日韩精品一区二区| 91精品免费久久久久久久久| 日韩中文视频免费在线观看| 久久久欧美一区二区| 国产日韩欧美一二三区| 日韩电视剧在线观看免费网站| 日本电影亚洲天堂| 精品综合久久久久久97| 亚洲黄色有码视频| 丰满岳妇乱一区二区三区| 亚洲国产精品va在线观看黑人| 久久亚洲私人国产精品va| 亚洲国产欧美一区二区三区同亚洲| 91在线精品视频| 日韩精品免费综合视频在线播放| 国产97在线视频| 97久久精品人人澡人人爽缅北| 97超碰蝌蚪网人人做人人爽| 日韩av在线看| 日韩不卡中文字幕| 九九视频直播综合网| 国产有码一区二区| 精品亚洲aⅴ在线观看| 国产伦精品一区二区三区精品视频| 亚洲国产精品久久91精品| 亚洲综合中文字幕68页| 伊人亚洲福利一区二区三区| 一区二区三区无码高清视频| 日本午夜精品理论片a级appf发布| 国产精品第100页| 国内精品一区二区三区四区| 欧美大片欧美激情性色a∨久久| 欧美电影免费观看高清完整| 国产亚洲精品综合一区91| 欧美不卡视频一区发布| 午夜美女久久久久爽久久| 91精品国产777在线观看| 国产成人在线精品| 亚洲国产精品久久91精品| 久久久999国产精品| 欧美黑人狂野猛交老妇| 久久精品国产96久久久香蕉| 亚洲另类激情图| 成人免费视频xnxx.com| 亚洲综合在线中文字幕| 久热精品视频在线免费观看| 欧美激情欧美激情| 国产97在线亚洲| 欧美激情中文字幕乱码免费| 91精品在线看| 久久99青青精品免费观看| 九九久久久久久久久激情| 亚洲精品白浆高清久久久久久| 欧美影院在线播放| 日韩欧美一区二区三区| 亚洲精品国产品国语在线| 日韩电影中文字幕在线观看| 久久久久久中文| 国产区亚洲区欧美区| 亚洲第一精品久久忘忧草社区| 亚洲第一网中文字幕| 97国产一区二区精品久久呦| 欧美黑人性猛交| 91精品在线一区| 91国内揄拍国内精品对白| 国产精品自拍小视频| 91av网站在线播放| 911国产网站尤物在线观看| 国产91网红主播在线观看| 在线视频中文亚洲| 在线观看欧美日韩国产| 91po在线观看91精品国产性色| 欧美另类暴力丝袜| 久久久国产在线视频| 国产精品 欧美在线| 欧美一区二区三区图| 亚洲视频日韩精品| 中文字幕日韩欧美| 亚洲淫片在线视频| 午夜精品一区二区三区在线播放| 国产精品久久久久免费a∨大胸| 国产精品人成电影在线观看| 欧美理论电影网| 日韩av快播网址| 中文字幕视频在线免费欧美日韩综合在线看| 超碰精品一区二区三区乱码| 欧美亚洲国产视频小说| 久久精品在线播放| 欧美亚洲免费电影| 亚洲色图校园春色| 亚洲天堂网在线观看| 精品国产乱码久久久久久天美| 欧美午夜激情小视频| 久久成人一区二区| 欧美视频中文在线看| 国产欧美最新羞羞视频在线观看| 亚洲国语精品自产拍在线观看| 91av在线视频观看| 亚洲999一在线观看www| 久久久在线观看| 国产精品成人免费视频| 日韩在线免费视频| 欧美激情一区二区久久久| 欧美成年人网站| 亚洲午夜av久久乱码| 亚洲免费伊人电影在线观看av| 亚洲午夜激情免费视频| 国产日本欧美一区二区三区| 亚洲精品久久久一区二区三区| 欧美xxxx做受欧美| 欧美做爰性生交视频| 深夜福利一区二区| 日韩欧美成人精品| 色99之美女主播在线视频| 日韩精品视频免费| 欧美xxxx18国产| 中文字幕不卡在线视频极品| 91社影院在线观看| 亚洲天堂一区二区三区| 欧美精品日韩三级| 中文字幕日韩在线视频| 久久伊人91精品综合网站| 欧美最猛性xxxxx(亚洲精品)| 成人美女av在线直播| 欧美日韩国产精品一区二区三区四区| 久久久免费在线观看| 成人网址在线观看| 国产视频自拍一区| 亚洲欧美激情在线视频| 国产一区二区三区直播精品电影| 国产精品av在线播放| 欧美日韩一区二区在线| 日韩精品在线视频美女| 成人一区二区电影| 久久亚洲一区二区三区四区五区高| 国产精品免费久久久久久| 色777狠狠综合秋免鲁丝| 热re99久久精品国产66热| 亚洲欧洲高清在线| 国产精品免费观看在线| 亚洲国产成人在线播放| 国产一区二区在线播放| 亚洲欧美日韩国产成人| 欧美成人免费观看| 国产99久久精品一区二区| 国产精品久久久久久av福利| 欧美激情成人在线视频| 国产精品欧美日韩久久| 国产精品一区二区久久久| 国产成人精品最新| 欧美精品videossex性护士| 国产精品免费一区二区三区都可以| 欧美日韩国产精品一区二区不卡中文| 国产成人精品久久二区二区|