开发ONVIF其实可以先不用去熟悉app和mpp里面的代码
第一个wiretap只是用来编译u-boot,基本用不上
wiretap-buildroot是编译的时候用的,也不需要加到工程里面
可以先从wiretap-buildroot里面把版本编译出来,然后在板子上跑起来
wiretap-manager的代码我是用atom
不过编译版本的话不需要这些IDE,直接在linux shell下操作最简单
所有模块的编译都是在wiretap-buildroot里面统一做的
cd 到 cd ~/gitspace/wiretap-buildroot/里面,然后输入 make menuconfig,弹出配置界面UI.
1、要在buildroot环境下编译。或者,要修改makefile,引用buildroot里的编译器
2、上网看一下buildroot的手册,最直接的是建立一个generic类型的项目,在packages目录里
3、参考原来的makefile,建一个cmake项目,像wiretap-app
4、cmake的话不用写makefile,写一个cmake的配置文件CMakeList.txt,方便在不同系统上移植
5、直接用makefile的话,需要手动在里面设置好编译器选项
6、如果直接输入make命令,应该是直接调用了主机默认的gcc
7、在buildroot里面不用预先设置编译器,buildroot在build模块的时候,会把环境变量传到cmake或者makefile,但cmake是自己就支持识别的,makefile要自己写
2017-10-1 buildroot使用记录
1、在 /home/xyp/gitspace目录下创建 wiretap-gsoap目录,将开源 onvif_ipcam的文件包括.h和.c等全部拷贝到此目录;
2、在 eclipsecpp中import进来这个MAKE FILE工程 (注意onvif client的几个必须要的 .h和.c文件)
3、进入到 buildroot目录 (cd /home/xyp/gitspace/wiretap-buildroot/), 再cd package,在package目录下创建 wiretap-gsoap目录, 再在该目录下创建 Config.in和 wiretap-gsoap.mk两个文件(参照 wiretap-manager的相应文件)
4、进入到 package目录,找到该目录下的 Config.in文件,在 menu "Project Wiretap" 下添加一行 source "package/wiretap-gsoap/Config.in" 即可
cd /home/xyp/onvifworkspace/Test_cmake
mkdir build
cd build
cmake ..
make
make menuconfig 图形配置界面里,重点看 target packages里面 , project wiretap里面配置 app和 manager工程的实际路径; 另外,在 hardware handling里看 mpp的实际路径,配置好了后保存,然后make
但是报错了 137 errors,经查,可能的原因是 内存过小,于是重新设置虚拟机Ubuntu的内存增大,重启;
之后再发现 nodejs和npm版本过久,于是update,但是发现源提示404,于是在ubuntu 界面搜索 updater,调出 updater界面,点击 stop,再点击 setting,在弹出的窗口中,将默认的源(united state)改为 china,并选择 163.mirror,但依然很多源404, 执行 sudo apt cache apt upgrade一样很多404 于是再次到 updater窗口设置源修改为china的aliyun.mirror,然后再次 upgrade update并安装 nodejs和npm,OK!! 然后再执行 make,基本算通过(只有一处设置路径错误)--但耗时近一小时!!
修改了错误的路径后,再次MAKE,仍然需要大约40分钟来执行命令行!
附注 npm install --save
npm install --save --registry=https://registry.npm.taobao.org () 这个太慢,取消
sudo apt install nodejs (前提是 源已经设置并更新好了,aliyun的源)
sudo apt remove nodejs 删除过旧的版本
sudo apt-cache policy nodejs
指定安装包位置 curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
make clean
diff .config configs/wiretapv100_defconfig