導航:首頁 > 源碼編譯 > 海思交叉編譯libvpx

海思交叉編譯libvpx

發布時間:2022-12-31 06:23:44

Ⅰ 海思平台配置toolchain.cmake

交叉編譯,在我們的host宿主機器上需要生成target目標機器的程序, 使用CMake的Toolchain管理這里的各種環境變數和配置,就很好.

CMake給交叉編譯預留了一個變數-- CMAKE_TOOLCHAIN_FILE , 它定義了一個文件的路徑, 這個文件就是 toolchain ,我們可以在裡面配置 C_COMPILER , CXX_COMPILER ,如果用Qt的話需要更改 QT_QMAKE_EXECUTABLE 以及如果用 BOOST 的話需要更改的 BOOST_ROOT (具體查看相關 Findxxx.cmake 裡面指定的路徑), 因此,這個 toolchain 內嵌了一系列需要改變並且需要set的交叉環境的設置.

下面歸納一些比較重要的:

下面是一個常規的配置

這樣就完成了相關toolChain的編寫,之後,你可以靈活的選擇到底採用宿主機版本還是開發機版本,之間的區別僅僅是一條 -DCMAKE_TOOLCHAIN_FILE=./cross.toolChain.cmake ,更爽的是,如果你有很多程序需要做轉移,但目標平台是同一個,你僅僅需要寫一份toolChain放在一個地方,就可以給所有工程使用。

稍微大一點的項目都會用到一些外部依賴庫或者tool,CMake提供了 FIND_PROGRAM() , FIND_LIBRARY() , FIND_FILE() , FIND_PATH() and FIND_PACKAGE() 等命令來進行外部依賴的搜索查找。

但是有個問題,假如我們在給一個ARM處理器的移動設備做交叉編譯,其中需要尋找 libjpeg.so ,假如 FIND_PACKAGE(JPEG) 返回的是 /usr/lib/libjpeg.so ,那麼這就會有問題,因為找到的這個 so 庫只是給你的宿主機系統(例如一個x86的Ubuntu主機)服務的,不能用於Arm系統。所以你需要告訴CMake去其它地方去查找,這個時候你就需要配置以下的變數了:

在工程中一般通過如下步驟, 進入工程文件, 創建 arm-himix200-linux.cmake 文件, 內容是:

然後創建build文件夾, 進行編譯(注意, 需要指定 CMAKE_MAKE_PROGRAM , 不指定的話好像編譯有問題...):

在我的 toolchain 文件中,我指定:

因為我項目中 CMakeLists.txt 中需要查找 OpenSSL 和 curl , 因此會用到CMake自帶的 FindOpenSSL.cmake 和 FindCurl.cmake 兩個腳本, 他們會用到 Findxxx 命令, 會去我指定的目錄去搜索對應的庫

https://www.cnblogs.com/rickyk/p/3875334.html
http://www.cmake.org/Wiki/CMake_Cross_Compiling

閱讀全文

與海思交叉編譯libvpx相關的資料

熱點內容
編程思想pdf 瀏覽:282
加密歐美航線 瀏覽:48
svn怎麼看伺服器的地址 瀏覽:187
騎馬與砍殺1命令部隊用盾牌 瀏覽:595
光纜pdf 瀏覽:350
加密流量實時監測 瀏覽:628
360壓縮和好壓哪個好 瀏覽:61
python判斷變數是否為list 瀏覽:906
雲伺服器1m帶寬表示什麼意思 瀏覽:702
429升冷櫃用多大壓縮機 瀏覽:116
決策樹演算法java實現 瀏覽:376
androidtv開發焦點控制 瀏覽:328
論人的成長pdf 瀏覽:282
python網站源代碼 瀏覽:827
手機文件壓縮器怎麼安裝 瀏覽:112
androidsdk封裝 瀏覽:266
微信加密不知道怎麼取消 瀏覽:705
分析演算法設計程序編寫 瀏覽:843
linux啟動dhcp失敗 瀏覽:356
芙蓉出水選股公式源碼 瀏覽:763