愚昧之重大发现-嵌入式Eclipse C++项目-命令行整体编译
先说我遇到的问题,由于习惯了IDE编程,所以介入嵌入式编程以来,一直是使用eclipse c++,以前使用vc6编程时,整个项目很大,有几十个工程文件,vc6也支持批处理,常见的打包程序,都支持批处理动作,可以很好的输入一个命令就去上厕所或者休息了,等回来,就可以直接测试打包好的最终程序了,而且我这边当时做的是直接产生光盘目录
到了eclipse这里,以及QT这里遇到麻烦了,网上搜索了快一年了,都没有找到解决方法,说的不明不白。
其实我要干的事情,就是代码修改完成,简单测试某个库后,一个动作命令,产生最后的U盘升级包,或者flash镜像文件,由于系统牵扯好几个海思芯片,例如3520D,3535,3536,3536c,3798M,编译器不同,为此,如果自己折腾makefile,自己没掌握,牵扯的东西太多,项目也很庞大,也没时间学习具体细节了,再来折腾了
为此每次都需要将近期修改了代码的某个.so工程,或者执行程序工程,在eclipse里面,点击项目编译,然后由于有编译后批处理install.sh协助,会自动编译出so文件,并且拷贝到相应目录,如果界面有修改,就到QTCreator当中去编译界面的工程,这些动作做完了,我写过一个打包各个板卡芯片的批处理,最后可以自动产生升级程序。但毕竟中间还需要跑到eclipse中编译项目,而且麻烦的是由于芯片很多,有时候为了防止漏编译,每个芯片都要进行一次,避免某个芯片没有编译,程序不匹配,导致最后板卡烧写测试才能发现问题。每次到了项目打包,都要折腾半个小时左右才能把所有芯片的程序打包,而且由于程序库的相关性,有些库有先后顺序,所以还不能搞错,当时就觉得这时IDE界面编程带来的不便,比起界面编程,可以在十几二十几个工程里面拷贝复制,游刃有余带来的遍历,这半个小时也就一直忍受着。
今天突然发现eclipse里面编译时,就是个make -j4 clean 以及make -j4 all,我就到Release目录下试了一下,先clean再make all,还真有动作,现在想想,eclipse其实产生的这个makefile就是标准的,可以直接用的,害得我,这么久都是手动动作。
////////////////
批处理内容简单如下
// #!/bin/sh
export PATH=PATH:/opt/hisi-linux/x86-arm/arm-hisiv200-linux/target/bin:/opt/hisi-linux/x86-arm/arm-hisiv300-linux/target/bin:/opt/hisi-linux-nptl/arm-hisiv100-linux/target/bin:/opt/hisi-linux/x86-arm/arm-hisiv300-linux/lib:/opt/hisi-linux/x86-arm/arm-hisiv100-linux/target/bin:/opt/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/opt/hisi-linux-nptl/arm-hisiv100-linux/bin:/opt/hisi-linux-nptl/arm-hisiv300-linux/bin:/opt/hisi-linux-nptl/arm-hisiv400-linux/bin:/opt/hisi-linux/x86-arm/arm-hisiv400-linux/target/bin:/usr/lib/x86_64-linux-gnu:/opt/hisi-linux/x86-arm/arm-hisiv300-linux/arm-hisiv300-linux-uclibcgnueabi/lib:/opt/hisi-linux/x86-arm/arm-hisiv300-linux/arm-hisiv300-linux-uclibcgnueabi/lib/a9_soft:/opt/hisi-linux/x86-arm/arm-hisiv300-linux/lib:/opt/hisi-linux/x86-arm/arm-hisiv300-linux/target/lib:/opt/hisi-linux/x86-arm/arm-hisiv300-linux/lib:/opt/hisi-linux/x86-arm/arm-hisiv400-linux/target/bin:/opt/hisi-linux/x86-arm/arm-hisiv400-linux/lib:/opt/hisi-linux/x86-arm/arm-hisiv300-linux/arm-hisiv300-linux-uclibcgnueabi/lib:/opt/hisi-linux/x86-arm/arm-hisiv300-linux/arm-hisiv300-linux-uclibcgnueabi/bin:/opt/hisi-linux/x86-arm/arm-hisiv300-linux/arm-hisiv300-linux-uclibcgnueabi/lib:/opt/hisi-linux/x86-arm/arm-hisiv500-linux/arm-hisiv500-linux-uclibcgnueabi/bin:/opt/hisi-linux/x86-arm/arm-hisiv500-linux/arm-hisiv500-linux-uclibcgnueabi/lib:/opt/hisi-linux/x86-arm/arm-hisiv500-linux/target/bin
cd /home/ngs
sudo chmod -R 777 /home/ngs/workspace
#####################################HIRtc
注意这里,虽然是一个工程HIRtc,但有好几个配置,每种配置都会有一个目录,如果你也是用的eclipse,打开目录一看就清楚了,只要eclipse里面编译各个项目正常,这里就是正常的
cd /home/ngs/workspace/HIRtc/Release
make -j4 clean
make -j4 all
cd /home/ngs/workspace/HIRtc/release_3516A
make -j4 clean
make -j4 all
cd /home/ngs/workspace/HIRtc/release_3535
make -j4 clean
make -j4 all
cd /home/ngs/workspace/HIRtc/release_3536C
make -j4 clean
make -j4 all
cd /home/ngs/workspace/HIRtc/releaseV200
make -j4 clean
make -j4 all
cd /home/ngs/workspace/HIRtc/releaseV300
make -j4 clean
make -j4 all
#############################################IVHISetIP
cd /home/ngs/workspace/IVHISetIP/Release
make -j4 clean
make -j4 all
cd /home/ngs/workspace/IVHISetIP/release_3516A
make -j4 clean
make -j4 all
cd /home/ngs/workspace/IVHISetIP/release_3535
make -j4 clean
make -j4 all
cd /home/ngs/workspace/IVHISetIP/release_3536
make -j4 clean
make -j4 all
cd /home/ngs/workspace/IVHISetIP/release_3536C
make -j4 clean
make -j4 all
cd /home/ngs/workspace/IVHISetIP/releaseV200
make -j4 clean
make -j4 all
####################################IVComInfSDK
cd /home/ngs/workspace/IVComInfSDK/Release
make -j4 clean
make -j4 all
cd /home/ngs/workspace/IVComInfSDK/release_3516A
make -j4 clean
make -j4 all
cd /home/ngs/workspace/IVComInfSDK/release_3535
make -j4 clean
make -j4 all
cd /home/ngs/workspace/IVComInfSDK/release_3536
make -j4 clean
make -j4 all
cd /home/ngs/workspace/IVComInfSDK/release_3536C
make -j4 clean
make -j4 all
cd /home/ngs/workspace/IVComInfSDK/release_3798M
make -j4 clean
make -j4 all
#############################################IVHIComDataSDK
cd /home/ngs/workspace/IVHIComDataSDK/Release
make -j4 clean
make -j4 all
cd /home/ngs/workspace/IVHIComDataSDK/release_3535
make -j4 clean
make -j4 all
cd /home/ngs/workspace/IVHIComDataSDK/release_3536
make -j4 clean
make -j4 all
cd /home/ngs/workspace/IVHIComDataSDK/release_3536C
make -j4 clean
make -j4 all
cd /home/ngs/workspace/IVHIComDataSDK/release_3798M
make -j4 clean
make -j4 all
cd /home/ngs/workspace/IVHIComDataSDK/release_3516A
make -j4 clean
make -j4 all
#############################################HSMPISDK_3516D
cd /home/ngs/workspace/HSMPISDK_3516D/Release
make -j4 clean
make -j4 all
#############################################HSMPISDK_3520D
cd /home/ngs/workspace/HSMPISDK_3520D/Release
make -j4 clean
make -j4 all
cd /home/ngs/workspace/HSMPISDK_3520D/release_MINI
make -j4 clean
make -j4 all
#############################################HSMPISDK_3535
cd /home/ngs/workspace/HSMPISDK_3535/Release
make -j4 clean
make -j4 all
#############################################HSMPISDK_3536
cd /home/ngs/workspace/HSMPISDK_3536/Release
make -j4 clean
make -j4 all
#############################################HSMPISDK_3536C
cd /home/ngs/workspace/HSMPISDK_3536C/Release
make -j4 clean
make -j4 all
#############################################HSMPISDKEx_3798M
cd /home/ngs/workspace/HSMPISDKEx_3798M/Release
make -j4 clean
make -j4 all
/////////////////////////////////////////////////////////////////////////
后面很多,省略
qt的工程也是一样:
###################################IVHITvWallCtrl
cd /home/ngs/workspace/IVHITvWallCtrl
make -j4 clean
sudo /home/ngs/QT/QT4.86_3798M/bin/qmake /home/ngs/workspace/IVHITvWallCtrl/IVHITvWallCtrl.pro -r -spec qws/linux-hisi3798M-g++ CONFIG+=3798M
make -j4
sudo chmod -R 777 /home/ngs/workspace/IVHITvWallCtrl/IVHITvWallCtrl
echo "ngs" |sudo -S cp -p -r IVHITvWallCtrl /nfsroot/HI3798M
echo "ngs" |sudo -S rm IVHITvWallCtrl
cd /home/ngs/workspace/IVHITvWallCtrl
make -j4 clean
sudo /home/ngs/QT/Qt4.8.6/bin/qmake /home/ngs/workspace/IVHITvWallCtrl/IVHITvWallCtrl.pro -r -spec qws/linux-3520d-g++ CONFIG+=HI3520D
make -j4
sudo chmod -R 777 /home/ngs/workspace/IVHITvWallCtrl/IVHITvWallCtrl
echo "ngs" |sudo -S cp -p -r IVHITvWallCtrl /nfsroot/HI3536C
echo "ngs" |sudo -S cp -p -r IVHITvWallCtrl /nfsroot/HI3536
echo "ngs" |sudo -S cp -p -r IVHITvWallCtrl /nfsroot/HI3520D
echo "ngs" |sudo -S cp -p -r IVHITvWallCtrl /nfsroot/HI3535
echo "ngs" |sudo -S rm IVHITvWallCtrl
/////////////////////////
然后再把我以前写的整体打包sh放到后面,这样就一个命令,直接产生升级包,就和大家平时用的一样了,唉,这么简单,怎么网上没有相关介绍呢,要么没搜到,要么就是太简单,所以称之为愚昧之重大发现,写出来,避免其他人遇到同样弱智的问题,折腾许久。
OK,输入sudo ./mkall.sh,升级包就自动放到网站或者发给客户了,每次改完程序,测试模块后,就是这个动作,就可以休息了
- 分享
- 举报
-
浏览量:6391次2020-08-30 12:34:17
-
浏览量:6010次2021-12-10 16:15:34
-
浏览量:1158次2023-12-21 17:20:27
-
浏览量:2132次2020-08-14 18:20:33
-
浏览量:2608次2017-11-20 11:38:57
-
浏览量:689次2023-08-24 17:10:19
-
浏览量:1902次2022-11-25 10:53:53
-
浏览量:4270次2017-11-28 16:34:38
-
浏览量:2475次2020-08-20 17:57:43
-
浏览量:3821次2020-08-19 16:34:45
-
浏览量:1678次2020-08-19 16:43:27
-
浏览量:1243次2024-02-18 17:07:58
-
浏览量:2343次2020-08-17 18:01:42
-
浏览量:785次2023-10-23 16:21:43
-
浏览量:1369次2022-12-27 08:55:13
-
浏览量:2352次2020-06-03 16:23:42
-
浏览量:2474次2020-08-19 16:46:46
-
浏览量:3877次2020-07-17 16:50:14
-
浏览量:2114次2020-08-17 18:04:26
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
ngswfx
感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明