在編譯好的SDL2庫引入SDL2_image庫的編譯步驟

一 .前言

  由於在使用SDL2開發的過程,需要加載png圖片,而SDL2本身不提供加載png圖片的功能實現。所以需要在引入SDL2_image庫。
  如果想查看Android Studio下怎麼編譯SDL2庫,請查看 http://www.cnblogs.com/yongfengnice/p/7827040.html ,因爲SDL2_image的編譯是基於編譯好的SDL2庫的基礎上添加的。

二. 下載並解壓縮SDL2_iamge庫

  下載鏈接:https://www.libsdl.org/projects/SDL_image/release/SDL2_image-2.0.1.zip

  解壓縮後得到SDL2_image-2.0.1目錄,SDL2_image的全部源代碼就在裏面。

  附:我下載最新的SDL2_image-2.0.2.zip編譯不通過,我換回SDL2_image-2.0.1.zip編譯,最新版估計有問題,也可能是我環境的問題。

三. 打開按照這個鏈接http://www.cnblogs.com/yongfengnice/p/7827040.html編譯好的SDL2項目,在jni目錄下創建名稱爲SDL2_image的目錄下,並將上面的SDL2_image-2.0.1目錄下的所有文件和acinclude子目錄和external子目錄拷貝進去(也可以全部拷貝進去)。如圖:

這裏寫圖片描述 這裏寫圖片描述

  右邊只是一部分截圖,太長了,沒必要全部截圖。其實我並不是拷貝進去的,細節的話會發現我的SDL2_image目錄上有個箭頭,那是因爲它只是一個快捷方式。我生成一個快捷方式指向SDL2_image的源代碼,就不用費力氣去拷貝了嘛。

  打開cmd窗口,cd進入jni目錄下,執行 mklink /D SDL2_image C:\cpp\dev_lib\SDL2_image-2.0.1 ,成功會提示 symbolic link created for SDL2_image <<===>> C:\cpp\dev_lib\SDL2_image-2.0.1,這樣就會在jni目錄下生成一個名稱爲SDL2_image的快捷方式指向SDL2_image-2.0.1目錄了。

  mklink命令的使用方式如下所示:
  
  這裏寫圖片描述

四. 修改src下的Android.mk 文件,如下:

4-1. 修改include

    將 LOCAL_C_INCLUDES := (LOCALPATH)/ (SDL_PATH)/include

    修改爲 LOCAL_C_INCLUDES := (LOCALPATH)/ (SDL_PATH)/include $(LOCAL_PATH)/../SDL2_image/

4-2. 修改依賴

    將 LOCAL_SHARED_LIBRARIES := SDL2

    修改爲 LOCAL_SHARED_LIBRARIES := SDL2 SDL2_image
    

五. 點擊編譯,順利的話,即可生成SDL2_image庫,也有可能出現如下錯誤:

  ‘machine/cpu-features.h’ file not found  //這是算是JPEG庫的一個bug,因爲我們只需要png庫,所以禁止掉JPEG庫不受影響。修改如下:

  找到jni/SDL2_image目錄下的Android.mk文件,將裏面的 SUPPORT_JPG ?= true 改爲 SUPPORT_JPG ?= false 即可。再次編譯應該會成功。

六. 編譯成功後,java代碼加載SDL2_image庫,修改如下:

這裏寫圖片描述

博客轉載:yongfengnice

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章