簡體   English   中英

為 android/iOS 編譯 c++

[英]Compile c++ for android/iOS

我必須編譯一個庫(來自Bellard.org 的庫 BPG)來創建一個 .so 或一個我可以在 android/iOS 上使用的 dll。

我正在使用 Visual Studio。 通過一些研究,我發現了“Visual C++ -> Cross Platform -> Shared Library (Android, iOS)”項目。 但我完全迷失了,什么也做不了。

下載的庫由一些文件夾組織,但 Visual 不允許制作樹,所有文件都按過濾器排序(一個用於標題,一個用於源)。 所以我無法構建,我有300多個錯誤,“無法打開源文件”,“未定義的變量”......

其次,項目的自述文件說:

需要安裝以下軟件包: mingw64-gcc mingw64-libpng mingw64-libjpeg-turbo mingw64-SDL mingw64-SDL_image yasm

我發現為 mingw 安裝了 32 位但沒有 64 位,所以我不知道構建是否可以執行。 我不知道如何找到圖書館。

所以我的問題是,為 android/iOS 編譯 C/C++ 庫的最佳方法是什么? 我在哪里可以找到適合初學者的教程?

謝謝

我作為交叉編譯工程師已經工作了幾年。 我認為最適合您的 IDE 是內置 CMake 的 CLion。

CMake 是一種工具,它可以將 C/C++ 庫交叉編譯到 ios\\android\\linux\\etc.. 只使用一個配置文件:“CMakeList.txt”。 CMake 的主要任務是在每個平台上將 CMakeList.txt 轉換為 Makefile,並為您提供 .a 和 .so 文件。

CLion 是代碼編輯和調試方面非常強大的 IDE。

此外,Android 需要 JNI(或 JNA,如果不考慮性能)將您的 c++ 接口包裝到 java 類。 在這里,我會推薦 SWIG。 SWIG 是一個將 C++ 接口包裝到其他語言的工具,這意味着不僅你可以支持 android 上的 java,其他日子你的 lib 還可以支持 python\\tcl\\Go\\etc。

你使用哪個操作系統來構建庫? macOS 還是勝利?

對於 iOS:.a 文件對於 Android:.so 文件

首先你應該檢查自述文件

  • 編輯 Makefile 以更改編譯選項(默認編譯選項應該可以)。 輸入“make”進行編譯,輸入“make install”安裝編譯好的二進制文件。

  • 使用“make -j N”,其中 N 是編譯速度更快的 CPU 內核數。

  • 必須安裝以下軟件包:SDL-devel SDL_image-devel yasm。 建議使用 yasm version >= 1.3.0 編譯更快。

  • 僅支持 64 位目標,因為 x265 需要它來實現大於 8 的位深度。

選中此項以安裝 SDL 軟件包https://wiki.libsdl.org/Installation

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM