VTK NDk Android 编译

本文详细介绍了如何在Ubuntu18.04系统上安装NDK、SDK Tools,以及配置CMake和make等依赖工具。接着,通过步骤演示了如何下载VTK源码并编译,特别是针对Android平台,编译64位静态库。过程中提到了需要修改源码以适配新环境,并给出了可能出现的问题提示。最后,提供了相关资源链接以便进一步学习。
摘要由CSDN通过智能技术生成

环境: Ubuntu 18.04

一、准备工作 安装NDK Android SDK/Tools

wget https://dl.google.com/android/repository/android-ndk-r16b-linux-x86_64.zip

 直接解压到当前目录 android-ndk-r16b-linux-x86_64.zip

设置环境变量:

sudo vim /etc/profile

在文件结尾增加:

export NDK_ROOT=/home/VTK/android-ndk-r16b
export ANDROID_NDK=/home/VTK/android-ndk-r16b
export ANDROID_PLATFORM_TOOL=/home/VTK/platform-tools
export ANDROID_TOOL=/home/VTK/tools
export PATH PATH=$PATH:$NDK_ROOT:$ANDROID_TOOL:$ANDROID_PLATFORM_TOOL:$GOROOT/bin:$GOPAHT/bin

二、依赖工具 cmake make 相关库

cmake
 

1. 卸载已经安装的旧版的CMake[非必需]

apt-get autoremove cmake

2. 文件下载解压:
wget https://cmake.org/files/v3.12/cmake-3.12.2-Linux-x86_64.tar.gz

解压:
tar zxvf cmake-3.12.2-Linux-x86_64.tar.gz

3. 创建软链接

注: 文件路径是可以指定的, 一般选择在/opt 或 /usr 路径下, 这里选择/opt
mv cmake-3.12.2-Linux-x86_64 /opt/cmake-3.12.2
ln -sf /opt/cmake-3.12.2/bin/*  /usr/bin/

然后执行命令检查一下:
>>>cmake --version
cmake version 3.12.2

CMake suite maintained and supported by Kitware (kitware.com/cmake).

make

sudo apt-get install make

其它 该命令将安装一堆新包,包括gcc,g ++和make。


sudo apt-get update
sudo apt-get install -y build-essential

 

OpenGL依赖库
 

sudo apt-get install freeglut3-dev
sudo apt-get install libgl1-mesa-dev
sudo apt-get install libxt-dev

三、下载VTK源码并编译

wget https://www.vtk.org/files/release/8.2/VTK-8.2.0.tar.gz
tar zxvf VTK-8.2.0.tar.gz

 运行编译脚本

cd VTK-8.2.0
mkdir build
cd build

vim auto_build_android.sh

auto_build_android.sh 内容

#!/bin/bash
cmake  -DCMAKE_TOOLCHAIN_FILE=$NDK_ROOT/build/cmake/android.toolchain.cmake  \
-DCMAKE_ANDROID_NDK=$NDK_ROOT \
-DCMAKE_VERBOSE_MAKE=ON \
-DCMAKE_SYSTEM_NAME=Android \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_FLAGS='-std=c++11 -fpic -fexceptions -frtti' \
-DCMAKE_C_FLAGS='-fpic' \
-DCMAKE_ANDROID_STL_TYPE='c++_static' \
-DCMAKE_SYSTEM_VERSION=21 \
-DVTK_ANDROID_BUILD=ON \
-DANDROID_NATIVE_API_LEVEL=21 \
-DANDROID_PLATFORM=android-21 \
-DANDROID_EABI="aarch64-linux-android-4.9" \
-DANDROID_ARCH_ABI=arm64-v8a \
-DBUILD_SHARED_LIBS=ON \
-DOPENGL_ES_VERSION=3.0 ..

cmake --build .

保存,退出;

auto_build_clean.sh

#!/bin/bash
rm -rf CMakeCache.txt
rm -rf CMakeFiles
rm -rf cmake_install.cmake
rm -rf Makefile
rm -rf CTestTestfile.cmake
rm -rf CMakeExternals  
rm -rf CMakeTmp  
rm -rf CompileTools  
rm -rf CTestCustom.cmake  
rm -rf ExternalData

将 以下文件中 “std::round” 直接修改为 “round” ----------------这个比较麻烦,直接打开文件进行替换吧。

 

最近执行 auto_build_android.sh,编译出 64位.a 文件。

具体使用见:

https://www.michaelapp.com/posts/2019/VTK-Android%E7%A7%BB%E6%A4%8D%E5%92%8C%E7%A4%BA%E4%BE%8B/

https://github.com/panyingyun/vtkandroiddemo

这个比较老了,只编译出 32位,不能用了基本。

最后请注意,使用版本,如果是高版本的 NDK,会出很多问题,这里不在表述。

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

恋恋西风

up up up

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值