眾所周知岖赋,如果一個(gè)程序使用到了動(dòng)態(tài)庫映挂,也就是.so后綴的庫文件,gcc在鏈接與運(yùn)行過程中都需要庫文件的支持普气,如果我使用交叉編譯在x86的機(jī)器上編譯了一段arm平臺的代碼踱蠢,并且在鏈接過程中鏈接了arm類型的第三方庫,然后我希望我的可執(zhí)行文件可以運(yùn)行在arm平臺上棋电,那么我需要讓arm平臺上也有第三方庫文件嗎茎截?
答案是肯定的,如果arm平臺上沒有鏈接時(shí)用到的動(dòng)態(tài)庫赶盔,那么程序在執(zhí)行時(shí)是找不到需要載入的程序的企锌,也就無法執(zhí)行。
正確做法是將你在x86平臺編譯時(shí)所鏈接的動(dòng)態(tài)庫文件也復(fù)制一份到你的運(yùn)行平臺上于未,然后還要加入路徑
就像這樣撕攒,主要是lib文件夾下面的.so文件一定要在運(yùn)行平臺上也存在一份,include文件夾下面就沒有必要了
因?yàn)槲倚枰赼rm平臺上運(yùn)行opencv烘浦,所以我把opencv交叉編譯生成的.so文件全部復(fù)制到了arm平臺上
然后在arm平臺上輸入命令:
打開這個(gè)配置文件抖坪,然后把動(dòng)態(tài)庫路徑輸入進(jìn)去即可
完了別忘記ldconfig一下,將路徑載入緩存