① MuPDF怎麼在windows環境下編譯
git submole update --init代碼獲取完成以後,需要在源代碼目錄生成一個generated目錄,裡面有一些.h文件,這一步非常關鍵,也是我在編譯過程中遇到的最大的障礙根據官方網站的說明,需要用 make generate 命令來生成這個目錄,這就需要安裝cygwin 編譯環境.可直接網上下載安裝,需要特別注意的是在安裝cygwin時必需選擇gcc和make相關的部分,否則無法執行 make命令,對新手來說,這一步非常重要,我就是在這里卡了很長時間,make總是不成功,提示說找不到命令,因為以前沒有相關經驗,所以卡了很長時間。gcc安裝也是非常重要,把 gcc 編譯c代碼和c++ 代碼的部分也都選上,否則即使有了make,也不能make成功。
執行make命令(執行make前,需要將cygwin路徑加入到環境變數):
make generate
make成功以後,在源代碼目錄下面會生成generated 文件夾,內容如下圖:
這一步成功完成後,編譯就成功了一半。下面進行NDK編譯,我用的NDK版本是R8B ,需要說明的是,經過我的摸索,並不是所有的版本的NDK都能編譯通過,如果使用最新的NDKR8D的話會有非常多的警告。在源代碼目錄下找到local.properties.sample,改名為local.properties 做如下修改:
sdk.dir=C:\Documents and Settings\Administrator\android-sdks\platforms\android-10
ndk.dir=C:\android-ndk-r8b
分別是android sdk 路徑和ndk 路徑。這時,先不要執行NDK編譯命令 ,在源代碼目錄的JNI文件夾下找到Application.mk文件,找到下面兩行:
# If the ndk is r8b then workaround bug by uncommenting the following line
#NDK_TOOLCHAIN_VERSION=4.4.3
意思是說如果使用ndk r8b編譯需要取消注釋NDK_TOOLCHAIN_VERSION=4.4.3 這一行,OK,照辦,取消注釋。這一步非常重要,我就是實現沒仔細看這行,導致最後編譯不通過。原因是不同版本的GCC,對命令的解釋有差異,導致錯誤,這里就不深究了。下面正式開始NDK編譯:
整個編譯工作大功告成。