关于arm+linux+opencv3.4.4在Ubuntu18.04上交叉编译的小记

首先,踩了两天的坑,通宵了两天,终于把交叉编译的运行环境搞完了,以下单纯是我不知道上辈子对不起谁才会出现的BUG,有些目前在某度上面没有,纯属记录,十倍开心!
第一个,在编译器的选择上,原则上选择对应的编译器,根据自己交叉编译后需要使用的嵌入式系统选择,不要盲目选择,建议先百度一下关于arm交叉编译用的编译器的一些外围知识,链接就不贴了,多的是。
第二个,选择完编译器,一定要分清楚Ubunut 是32位的还是64位的,如果是64位的而且使用的是32位的编译器(一般来说后面有i386的都是32位)一定要用apt-get下载兼容软件,这个也可以在度娘上面找到,很详细,也不贴了。
第三个,在cmake 里面configure时,如果报错提示“xxxx is not suitable for xxx”,这个其实是编译器安装的有问题,大多数是环境变量的问题,看一下环境变量,不行重启或者source一下,当在shell 输入arm按tab之后会出现对应的文件就好,也可以查版本号。
第四个,shell里面make的时候在29%左右的时候会有一个报错,#error "No suitable threading library available."这个是因为有一个define缺少了,度娘上面直接是做了一个config.h来中和,但是我试了一下效果不太好,不如直接顺着报错找到common.cc文件在里面开头加上#define HAVE_PTHREAD,就可以通过了;后面还会报错undefinrence pxxx,dxxxx,这些度娘上面都有,是因为Cmakelist .txt里面缺少配置信息。
第五个,我就在这里面爬了一个通宵,后来交叉编译QT的时候突然顿悟过来。“undefined reference to `void (anonymous namespace)::hlineResizeCn 这是这几天通宵的踩坑记录,踩坑一时爽,一直踩坑一直爽!

你可能感兴趣的:(踩坑记录)