ubuntu12.04 64bit編譯android ics4.0代碼出現的/usr/bin/ld.bfd.real: cannot find 問題解決

來源:互聯網
上載者:User

編譯環境

vm+ubuntu12.04 64bit + android ics4.0代碼

在編譯原始碼的時候出現該錯誤

/usr/bin/ld.bfd.real: cannot find -lGL

/usr/bin/ld.bfd.real: cannot find -lX11

根據網上大多數的說法,以及官網的介紹。截至5月底,android對ubuntu12.04的編譯平台的支援不是很推薦,有些庫的相容方面會有一些問題

這兩個錯誤判的錯其實就是說沒有在庫路徑中找到libGL.so libX11.so

但是開啟etc/ld.so.conf.d中查看64位的庫路徑下x86_64-linux-gnu.conf設定檔

# Multiarch support
/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu

該路徑下是有libGL.so的,並且查看檔案連結指向沒有問題。但是編譯起來還是有錯。

後來再查看了一些資料,因為編譯的時候還是用到了32BIT的libGL.so libX11.so庫檔案,編譯的時候找的不是X86_64庫檔案配置,而是找的是I386庫檔案配置

# Multiarch support
/lib/i386-linux-gnu
/usr/lib/i386-linux-gnu
/lib/i686-linux-gnu
/usr/lib/i686-linux-gnu

果然在I386目錄下沒有找到這兩個檔案

首先安裝這兩個庫檔案的32位版本:

$ sudo apt-get install
libx11-dev:i386(libX11.so)

$ sudo apt-get install
ibgl1-mesa-glx:i386
(libGL.so)

由於libGL.so系統預設沒有進行庫路徑下的連結,還需要手動連結一下

$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so

再編譯大功告成!

參考文檔:

https://bugs.launchpad.net/ubuntu/+source/mesa/+bug/949606

http://groups.google.com/group/android-building/browse_thread/thread/dc8a3503676cd034

https://android-review.googlesource.com/#/c/37393/1/src/source/initializing.md

個人的系統配置不一,大家記得如果是

/usr/bin/ld.bfd.real: cannot find

類型的,先看看庫配置路徑是否正確(有木有),然後再看看是否存在32位庫與64位庫的區別問題。

解決方案參見ubuntu 編譯 /usr/bin/ld: cannot find 問題解決

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.