如何为Android Xamarin编译VS2019/GitHub C++项目生成.so文件
问题2:编译GitHub上的C++项目为Android Xamarin可用的*.so文件
大部分GitHub上的C++项目都用CMake管理,所以优先推荐用CMake+Android NDK的方式,适配性最好;也可以导入到VS2019里编译,两种方法都给你说清楚:
方法一:CMake + Android NDK编译(推荐)
- 先把GitHub上的项目源码下载到本地,解压好
- 确保你已经装了Android NDK和CMake(可以通过Android Studio的SDK Manager装,或者用VS里配套的NDK自带的CMake)
- 在项目根目录下新建一个
build-android文件夹,打开命令提示符(或终端)进入这个文件夹,运行CMake配置命令:
参数说明:cmake .. -DCMAKE_TOOLCHAIN_FILE=你的NDK路径/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=android-21 -DCMAKE_BUILD_TYPE=Release- 把
你的NDK路径换成实际路径,比如Windows上可能是C:\Program Files (x86)\Android\android-sdk\ndk\25.2.9519653 ANDROID_ABI选你需要的架构,可选arm64-v8a、armeabi-v7a、x86、x86_64ANDROID_PLATFORM是最低支持的安卓版本,android-21对应安卓5.0,覆盖绝大多数设备
- 把
- 配置完后,运行编译命令:
cmake --build . --config Release - 编译完成后,.so文件会在
build-android里对应架构的文件夹下,比如arm64-v8a/libxxx.so
方法二:导入到VS2019编译
- 打开VS2019,选「文件」→「打开」→「CMake」,找到项目根目录下的
CMakeLists.txt打开 - 等VS加载完CMake项目后,在「CMake目标」窗口右键项目→「CMake设置」
- 在设置界面点击「添加配置」,选「Android」,然后设置好ABI、安卓平台版本、构建类型(Debug/Release)
- 保存配置后,点击「生成」→「生成所有项目」,编译完就能在输出目录找到.so文件
通用步骤:在Xamarin项目中使用.so文件
不管用哪种方法生成的.so,都可以这样集成到Xamarin.Android里:
- 在Xamarin项目中创建
lib\<ABI>文件夹(比如lib\arm64-v8a),把对应的.so文件复制进去 - 选中.so文件,右键属性:把「生成操作」改成「AndroidNativeLibrary」,「复制到输出目录」改成「如果较新则复制」
- 在C#代码里用
DllImport调用.so里的函数,示例:[DllImport("你的库名", EntryPoint = "CalculateSum")] public static extern int CalculateSum(int a, int b);
内容的提问来源于stack exchange,提问作者Sil3nT
相关产品推荐
相关产品推荐

