Android JNI之編譯

來源:互聯網
上載者:User

標籤:.so檔案   ndk   call   引入   efi   flags   red   拼接   filename   

JNI代碼都寫好了,在編譯之前我們有非常重要的一部,就是寫mk檔案,mk檔案就相當於gcc編譯時間的Makefile檔案,它是用來告訴編譯器如何去編譯的。

這裡只對自己理解和常用的知識點做記錄,想要看關於android.mk的全部解釋請移步android.mk。

  1. 對執行順序的猜想,mk檔案的執行順序是從上往下順序執行的
  2. 基本文法。
    $() 引用方法或變數
    := 賦值符號
    += 拼接賦值
    include 引入(調用)某個程式碼片段,例如include $(BUILD_XXXXX)就相當於把BUILD_XXXXX這個方法的實現拿過來,編譯器讀到這一行時即執行該方法
  3. mk檔案基本都是以LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS)開頭,以include $(BUILD_XXXXX)結尾
  4. 常用預留變數解析(基本都以LOCAL_開頭)
    LOCAL_PATH:指定當前檔案的位置,基本都是賦值為$(call my-dir)
    LOCAL_SRC_FILES:指定需編譯的源檔案,多檔案以空格分隔或使用+=拼接賦值
    LOCAL_MODULE:指定module名,要求必須唯一且不能帶空格
    LOCAL_MODULE_FILENAME:指定產生的module的檔案名稱,預設則按照lib<LOCAL_MODULE>產生.a或.so檔案
    LOCAL_STATIC_LIBRARIES:引用的靜態庫(.a)
    LOCAL_SHARED_LIBRARIES:引用的動態庫(.so)
    LOCAL_LDFLAGS:指定連結標誌
  5. 常用系統方法
    CLEAR_VARS:清除所有預設的值
    BUILD_SHARED_LIBRARY:編譯出動態庫(.so)
    BUILD_STATIC_LIBRARY:編譯出靜態庫(.a)
  6. 編譯
    cd到.mk檔案所在目錄,執行ndk包中的ndk-build命令

Android JNI之編譯

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.