1. 必须确定目标平台的操作系统, 2. 该系统的版本号,
一、安装ubuntu
下载VM14
https://pan.baidu.com/s/1pbDXpgpNQTdTRzzKNWfE1A
FF31K-AHZD1-H8ETZ-8WWEZ-WUUVA
下载ubuntu
镜像地址 http://ftp.sjtu.edu.cn/ubuntu-cd/16.04/
安装: https://blog.csdn.net/gongxifacai_believe/article/details/52444938?utm_source=blogxgwz4
连接xshell
apt-get install openssh-server
sudo /etc/init.d/ssh start
二、opencv安装 官网介绍
https://docs.opencv.org/3.4.0/d7/d9f/tutorial_linux_install.html
按照官网安装之后:
g++ `pkg-config --cflags opencv` test.cpp `pkg-config --libs opencv` -o test
ldd dlsd ./test
查看缺少的链接库
三、链接
添加链接,相当于在Windows VS下在属性里添加头文件, 添加链接器
vi /etc/ld.so.conf 添加 /usr/local/lib
再运行sudo ldconfig,
修改bash.bashrc文件,sudo vi /etc/bash.bashrc
在文件末尾加入:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
source /etc/bash.bashrc
ubantu 屏幕自适应: apt-get install open-vm-tools apt-get install open-vm* reboot
启用共享文件, 也方便文本或文件复制 https://jingyan.baidu.com/article/5553fa82957f6f65a239349b.html
windows可以看见共享目录, 想要linux也看见, 需要
vmhgfs-fuse .host:/ /mnt/hgfs -o subtype=vmhgfs-fuse,allow_other,nonempty #挂载共享目
ls /mnt/hgfs/
+cuda.. https://www.cnblogs.com/weiweisuhe/p/6112850.html
四、安装QT create 在ubantu开发
下载 http://download.qt.io/archive/qt/
无法run的时候 使用chmod 775 -R 改变文件夹权限
qt for android:
apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386 openjdk-8-jdk -y
apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib -y
apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 -y
apt-get install dpkg-dev libsdl1.2-dev libesd0-dev -y
apt-get install git-core gnupg flex bison gperf build-essential -y
apt-get install zip curl zlib1g-dev gcc-multilib g++-multilib -y
apt-get install libc6-dev-i386 -y
apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev -y
apt-get install lib32z-dev ccache -y
apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4 -y
run安装的时候, 将所有与android有关的组件勾选。
打开qt, Tools -> options:
点击example, 在样例中找到android的一些样例, 进行测试, 遇到什么问题解决什么问题, 有可能是sdk有的包没安装, 去{sdk_dir}/tools/.android 启动sdk manager .
C项目:
apt-get install libgl1-mesa-dev
新建项目, -> 空qt, -> new 一个C++文件即可
五、 为QT添加链接路径
INCLUDEPATH += /usr/local/include/*
LIBS += /usr/local/lib/*
添加详细路径:
#INCLUDEPATH += /usr/local/include
#/usr/local/include/opencv
#LIBS += /usr/local/lib/libopencv_imgproc.so
#/usr/local/lib/libopencv_highgui.so
构建第三方库独立支持:
首先安装摄像头驱动
apt-get install libv4l-dev
再次,由于VM USB默认使用的2.0, 造成与摄像头不兼容, 在该虚拟机选项中手动改成 USB 3.0
测试1: 将第三方库 一起放入工程
在该项目下 创建一个3rdparty目录, 其下有include, lib, 两个目录, 其中内容从 /usr/local 直接复制即可
在 .pro中 :
/usr/local/include/opencv
/usr/local/include/opencv2
/usr/local/lib/libopencv_highgui.so
/usr/local/lib/libopencv_core.so
/usr/local/lib/libopencv_imgcodecs.so
/usr/local/lib/libopencv_video.so
/usr/local/lib/libopencv_videoio.so
#define UNTITLED2_H
#include <opencv2/opencv.hpp>
using namespace std;
...
INCLUDEPATH += $$PWD/../3rdparty/include/*
tar xf zbar-0.10.tar.bz2
cd zbar-0.10
sed -i 's|linux/videodev.h|libv4l1-videodev.h|g' zbar/video/v4l1.c include/config.h.in configure.ac configure
./configure --prefix=/home/isuker/work/app/ --without-gtk --disable-video --without-imagemagick --without-python
export CFLAGS=""
make
make install
安装ndk:
下载: https://developer.android.google.cn/ndk/downloads/
解压在 /app 文件夹中
vi /etc/profile export NDK_HOME=/home/lirui/app/android-ndk-r16b export PATH=$NDK_HOME:$PATH source /etc/profile
测试: echo $NDK ndk-build -v
安装到磁盘空间不足! 扩容磁盘, 充分区, 使用分区工具: apt-get install gparted
给VM分配好空间后, 使用gparted 新增一个分区 /dev/sda3 10G, 将这个新分区挂载到 /home/lirui/app 下:
mount /dev/sda3 /home/lirui/add/
解除的话: umount /dev/sda3 /home/lirui/add/
但是, 此时的挂载 是暂时性的, 想要永久性挂载, 需要:
blkid /dev/sda3
得到UUID = ebe513a0-a859-4325-84ac-a2aeb3d0b075
vi /etc/fstab
UUID=ebe513a0-a859-4325-84ac-a2aeb3d0b075 /home/lirui/external ext4 defaults 0 2
df -h
测试jdk:
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
java -version
javac -version
安装sdk:
在官网找到 SDK Tool下载 : https://www.androiddevtools.cn/
启动sdk manager : android-sdk-linux/tools/android 按照目标安卓的系统安装 API, 我按的是4.4
cmake -DCMAKE_TOOLCHAIN_FILE=../platforms/android/android.toolchain.cmake -DANDROID_NDK=$ANDROID_NDK -DCMAKE_BUILD_TYPE=Release -DANDROID_ABI=armeabi -DANDROID_NATIVE_API_LEVEL=19 ..
出现各种无法解决的bug, 最终还是选择直接下载opencv 官网的 opencv for android。
新建一个android项目, Application -> QT widgets :
编辑 .pro配置文件
unix { message("Using unix configuration") ANDROID_OPENCV = E:/Qt/Qt5.3.2_Android/OpenCV-2.4.9-android-sdk/sdk/native INCLUDEPATH += $$ANDROID_OPENCV/jni/include/opencv $$ANDROID_OPENCV/jni/include/opencv2 $$ANDROID_OPENCV/jni/include LIBS += $$ANDROID_OPENCV/libs/armeabi-v7a/libopencv_contrib.a $$ANDROID_OPENCV/libs/armeabi-v7a/libopencv_legacy.a $$ANDROID_OPENCV/libs/armeabi-v7a/libopencv_ml.a $$ANDROID_OPENCV/libs/armeabi-v7a/libopencv_objdetect.a $$ANDROID_OPENCV/libs/armeabi-v7a/libopencv_calib3d.a $$ANDROID_OPENCV/libs/armeabi-v7a/libopencv_video.a $$ANDROID_OPENCV/libs/armeabi-v7a/libopencv_features2d.a $$ANDROID_OPENCV/libs/armeabi-v7a/libopencv_highgui.a $$ANDROID_OPENCV/libs/armeabi-v7a/libopencv_androidcamera.a $$ANDROID_OPENCV/libs/armeabi-v7a/libopencv_flann.a $$ANDROID_OPENCV/libs/armeabi-v7a/libopencv_imgproc.a $$ANDROID_OPENCV/libs/armeabi-v7a/libopencv_core.a $$ANDROID_OPENCV/3rdparty/libs/armeabi-v7a/libIlmImf.a $$ANDROID_OPENCV/3rdparty/libs/armeabi-v7a/liblibjpeg.a $$ANDROID_OPENCV/3rdparty/libs/armeabi-v7a/liblibpng.a $$ANDROID_OPENCV/3rdparty/libs/armeabi-v7a/liblibtiff.a $$ANDROID_OPENCV/3rdparty/libs/armeabi-v7a/liblibjasper.a $$ANDROID_OPENCV/3rdparty/libs/armeabi-v7a/libtbb.a }
在编译时, 设置gradle:
找到gradle配置目录:
~/external/qt-android/Examples/Qt-5.5/quick/demos/build-calqlatr-Android_for_armeabi_v7a_GCC_4_9_Qt_5_5_0-Debug/android-build$ vi gradle.properties
qt 在 ubantu下开发C/C++还行, 开发Android还是算了吧!!!!
请转到android studio开发!