有很多方法可以将cross-compile转换为Raspberry Pi,也发布了用于交叉编译Qt或opencv的解决方案.

但是,我找不到任何解决方案来与也使用opencv的Qt交叉编译程序.

我在64位PC上使用debian尝试了以下操作:

>我使用this tutorial编译并将Qt设置为ARM7的交叉编译器.尽管如此,它还是没有问题,我发布了here is an answer,为我解决了这个问题.我现在可以在Raspberry Pi上使用图形GUI运行我的Qt程序(尽管只有全屏,但这是一个完全不同的问题)

>我在opencv官方网站上关注了the guide,以构建opencv.失败,找不到CMAKE_CXX_COMPILER.

>从经验(我在Windows和Linux上都将Qt与opencv一起使用)中得知,Qt和opencv只能在同一个编译器下编译时才能一起工作,所以我尝试对opencv使用相同的交叉编译器,我成功地使用了该交叉编译器来编译Qt :gcc-4.7-linaro-rpi-gnueabihf

>我将以前用来编译Qt的gnueabihf指定为编译器:

我创建了目录?/ opt / opencv_build_arm7 /,并在其中尝试:

sudo cmake -DCMAKE_CXX_COMPILER=/home//opt/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf-g++ -DCMAKE_C_COMPILER=/home//opt/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf-gcc -DCMAKE_TOOLCHAIN_FILE=/usr/dev/opencv/platforms/linux/arm-gnueabi.toolchain.cmake /usr/dev/opencv/

(下载的opencv源在/usr/dev / opencv /中,我最近成功地使用了Qt安装随附的g编译器为x64平台编译了opencv.)注意,< user>是当前会话的用户名,以防将来其他初学者将来尝试这些方法.

此操作失败,并显示以下错误(其中< user>是我的用户名)

CMake Error at

/usr/share/cmake-3.0/Modules/CMakeTestCXXCompiler.cmake:54 (message):

The C++ compiler

“/home//opt/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf-g++”

is not able to compile a simple test program.

It fails with the following output :

Change Dir: /home//temp/CMakeFiles/CMakeTmp

Run Build Command:”/usr/bin/make” “cmTryCompileExec117178613/fast”

/usr/bin/make -f CMakeFiles/cmTryCompileExec117178613.dir/build.make

CMakeFiles/cmTryCompileExec117178613.dir/build

make07006: Entering directory ‘/home//temp/CMakeFiles/CMakeTmp’

/usr/bin/cmake -E cmake_progress_report

/home//temp/CMakeFiles/CMakeTmp/CMakeFiles 1

Building CXX object

CMakeFiles/cmTryCompileExec117178613.dir/testCXXCompiler.cxx.o

/home//opt/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf-g++

-mthumb -fdata-sections -Wa,–noexecstack -fsigned-char -Wno-psabi -mthumb -fdata-sections -Wa,–noexecstack -fsigned-char -Wno-psabi -o CMakeFiles/cmTryCompileExec117178613.dir/testCXXCompiler.cxx.o -c /home//temp/CMakeFiles/CMakeTmp/testCXXCompiler.cxx

/home//temp/CMakeFiles/CMakeTmp/testCXXCompiler.cxx: In

function ‘int main()’:

/home//temp/CMakeFiles/CMakeTmp/testCXXCompiler.cxx:4:10:

sorry, unimplemented: Thumb-1 hard-float VFP ABI

CMakeFiles/cmTryCompileExec117178613.dir/build.make:57: recipe for

target

‘CMakeFiles/cmTryCompileExec117178613.dir/testCXXCompiler.cxx.o’

failed

make07006: ***

[CMakeFiles/cmTryCompileExec117178613.dir/testCXXCompiler.cxx.o] Error

1

make07006: Leaving directory ‘/home//temp/CMakeFiles/CMakeTmp’

Makefile:118: recipe for target ‘cmTryCompileExec117178613/fast’

failed

make: *** [cmTryCompileExec117178613/fast] Error 2

我为编译器指定了绝对路径,但是即使我没有指定它,也只是将其添加到我的$PATH中,它仍然存在相同的问题.

export PATH=$PATH:/home//opt/gcc-4.7-linaro-rpi-gnueabihf/bin/

sudo cmake -DCMAKE_TOOLCHAIN_FILE=/usr/dev/opencv/platforms/linux/arm-gnueabi.toolchain.cmake /usr/dev/opencv/

如果我键入,则可以正确找到编译器本身

arm-linux-gnueabihf-g++ -v

找到成功:

Using built-in specs. COLLECT_GCC=./arm-linux-gnueabihf-c++

COLLECT_LTO_WRAPPER=/home/vszabi/opt/gcc-4.7-linaro-rpi-gnueabihf/bin/../libexec/gcc/arm-linux-gnueabihf/4.7.2/lto-wrapper

Target: arm-linux-gnueabihf Configured with:

/opt/dev/src/crosstool-ng/crosstool-ng-linaro-1.13.1-2012.07-20120720/builds/arm-linux-gnueabihf-linux/.build/src/gcc-linaro-4.7-2012.07/configure

–build=i686-build_pc-linux-gnu –host=i686-build_pc-linux-gnu –target=arm-linux-gnueabihf –prefix=/opt/dev/src/crosstool-ng/crosstool-ng-linaro-1.13.1-2012.07-20120720/builds/arm-linux-gnueabihf-linux/install

–with-sysroot=/opt/dev/src/crosstool-ng/crosstool-ng-linaro-1.13.1-2012.07-20120720/builds/arm-linux-gnueabihf-linux/install/arm-linux-gnueabihf/libc

–enable-languages=c,c++,fortran –enable-multilib –with-arch=armv6zk –with-tune=arm1176jzf-s –with-fpu=vfp –with-float=hard –with-pkgversion=’crosstool-NG linaro-1.13.1-2012.07-20120720 – Linaro GCC 2012.07′

–with-bugurl=07009 –enable-__cxa_atexit –enable-libmudflap –enable-libgomp –enable-libssp –with-gmp=/opt/dev/src/crosstool-ng/crosstool-ng-linaro-1.13.1-2012.07-20120720/builds/arm-linux-gnueabihf-linux/.build/arm-linux-gnueabihf/build/static

–with-mpfr=/opt/dev/src/crosstool-ng/crosstool-ng-linaro-1.13.1-2012.07-20120720/builds/arm-linux-gnueabihf-linux/.build/arm-linux-gnueabihf/build/static

–with-mpc=/opt/dev/src/crosstool-ng/crosstool-ng-linaro-1.13.1-2012.07-20120720/builds/arm-linux-gnueabihf-linux/.build/arm-linux-gnueabihf/build/static

–with-ppl=/opt/dev/src/crosstool-ng/crosstool-ng-linaro-1.13.1-2012.07-20120720/builds/arm-linux-gnueabihf-linux/.build/arm-linux-gnueabihf/build/static

–with-cloog=/opt/dev/src/crosstool-ng/crosstool-ng-linaro-1.13.1-2012.07-20120720/builds/arm-linux-gnueabihf-linux/.build/arm-linux-gnueabihf/build/static

–with-libelf=/opt/dev/src/crosstool-ng/crosstool-ng-linaro-1.13.1-2012.07-20120720/builds/arm-linux-gnueabihf-linux/.build/arm-linux-gnueabihf/build/static

–with-host-libstdcxx=’-L/opt/dev/src/crosstool-ng/crosstool-ng-linaro-1.13.1-2012.07-20120720/builds/arm-linux-gnueabihf-linux/.build/arm-linux-gnueabihf/build/static/lib

-lpwl’ –enable-threads=posix –disable-libstdcxx-pch –enable-linker-build-id –enable-gold –with-local-prefix=/opt/dev/src/crosstool-ng/crosstool-ng-linaro-1.13.1-2012.07-20120720/builds/arm-linux-gnueabihf-linux/install/arm-linux-gnueabihf/libc

–enable-c99 –enable-long-long Thread model: posix gcc version 4.7.2 20120701 (prerelease) (crosstool-NG linaro-1.13.1-2012.07-20120720 –

Linaro GCC 2012.07)

接下来我可以尝试什么?使用opencv / platforms / linux / arm-gnueabi.toolchain.cmake打开gui版本的gui版本会显示很少的选项(仅ARM_LINUX_SYSROOT,CMAKE_BUILD_TYPE,CMAKE_CONFIGURATION_TYPES,CMAKE_INSTALL_PREFIX,GCC_COMPILER_v_y和单独的LIBRARY_OUTPUT_UTP和LIBRARY_OUTPUT ),比我为x86或x64平台构建opencv时的case少得多.

恐怕搜索其他编译器可能会导致Qt出现问题,因为据我所知,要使opencv在Qt中运行,必须使用与用于构建Qt库的编译器相同的编译器进行编译.构建我的程序.每当我过去尝试时,如果不小心需要使用相同的编译器来编译这三件事(Qt库,opencv,我的程序),无论何时我包含任何opencv标头,或者无论何时我每次都遇到奇怪的崩溃从opencv调用了任何函数.

linux qt交叉编译opencv,c-使用Qt和opencv交叉编译到Raspberry Pi相关推荐

  1. linux虚拟机镜像_无树莓派硬件体验:虚拟机安装 Raspberry Pi Desktop 操作系统

    树莓派官方的 raspbian 操作系统有 PC 版本,就是能用来安装到自己的电脑上.可能是官方的推广策略,先把树莓派系统推出来,让大家可以在 PC 上体验. 这篇文章就教大家,如何在电脑虚拟机上安装 ...

  2. 树莓派linux编译不了动态库,linux系统下的树莓派与Qt 5.12.3源码的交叉编译

    {写在前面:按照这个方法,基本可以成功在linux系统下交叉编译Qt5.12.3,其他版本的源码也编译} 我的环境:Linux Mint 19.1;树莓派 3;Qt源码5.12.3 当两个系统全部安装 ...

  3. linux ubuntu QT 下载和安装(Qt Creator)

    下载地址:https://download.qt.io/ 为什么选5.14版本,因为其他几个没发现 用迅雷下,下好后拷贝到ubuntu里,切换root用户,给安装包赋777权限 chmod 777 q ...

  4. Linux 下编译并安装配置 Qt

    本文介绍的是Linux 下编译并安装配置 Qt,最近准备做 Nokia 的 Symbian,Maemo 下触摸屏开发.考虑到程序的跨平台可移植性,最终选择使用 Qt 开发.相对来说,国内关于 Qt 相 ...

  5. Ubuntu 17.10安装Qt 5.10环境与Qt Creator 4.5开发工具(转自linux公社)

    记录下在Ubuntu 17.10搭建Qt环境与安装Qt Creator开发工具的过程.机器装的Linux是Ubuntu 17.10,16.04与17.04的应该也相同. Qt 5.10和Qt 3D S ...

  6. Linux使用cmake编译项目,如何使用cmake在linux中构建Qt项目(How to build Qt project in linux with cmake)...

    如何使用cmake在linux中构建Qt项目(How to build Qt project in linux with cmake) 我使用的是ubuntu 14.04,cmake 2.8.12.2 ...

  7. 全志 a33 linux qt,全志A33 lichee 搭建Qt App开发环境编写helloworld

    image 开发平台 芯灵思SinlinxA33开发板 image 嵌入式linux 开发板交流 QQ:641395230 Step 1 在虚拟机(CentOS7)上安装Qt Creator 将qt- ...

  8. linux 安装qt mysql库_Linux下QT平台Mysql数据库开发环境配置

    This doucment is about how to add mysql driver into QT and about database connections     由于之前安装RedH ...

  9. mac os 安装完整版opencv (with qt )

    mac os 安装完整版opencv (with qt ) 目前网上就这一个可行的办法,其余的都会出问题,我也是东拼西凑找到的完整的解决办法 brew install opecv 的opencv包不是 ...

最新文章

  1. 蚂蚁金服AAAI收录论文曝光,动态网络剪枝方法、无语预训练的网络剪枝技术有重大突破...
  2. Tomcat报错: JDBC unregister 可能导致内存溢出
  3. Pandas简明教程:四、Pandas数据索引方式
  4. 武汉锅检所检测机器人_管道检测机器人---此CCTV非彼CCTV
  5. CSS 强制换行和禁止换行强制换行 和禁止换行样式
  6. OpenCV C++ 07 - Histogram Equalization of a Color image with OpenCV
  7. Ubuntu 16.04 安装 cuda 7.5.run BEGIN failed--compilation aborted at ./cuda-installer.pl line 5
  8. 普惠金融在印尼:GoPay会是东南亚的蚂蚁金服吗?
  9. 【循序渐进学Python】9.异常处理
  10. python小游戏-16行代码实现3D撞球小游戏!-源码下载
  11. CodeForces512C-Pluses everywhere-模拟/数学/排列组合模板
  12. 我的 2018 年终总结
  13. 如何设置CSDN的ID(仅新建可设置)
  14. 万字雄文前瞻丨区块链及隐私计算在传统企业中的技术认知与进阶思考
  15. Activiti7.0实战学习(九):查询历史表中的数据
  16. 前端笔记1(选择器,动态增添/修改页面元素)
  17. 【vue+ant-design-vue+a-list】微信扫码登录pc端,后台页面增加微信绑定和微信解绑功能
  18. mysql开发语言,纯干货
  19. 学平面设计能做什么?平面设计都有哪些内容
  20. php正则 字符串转数组,jquery字符串转数组split正则匹配

热门文章

  1. 细致入微:如何使用数据泵导出表的部分列数据
  2. Spring中部署Activiti流程定义的三种姿势
  3. 40张图+万字,从9个数据类型帮你稳稳的拿捏Redis数据结构
  4. 趣味科普丨一文读懂云服务器的那些事儿
  5. 9块钱,构建个私有网盘,关键不限速
  6. Angularjs进阶笔记(1)—不同类型的双向数据绑定
  7. 红橙Darren视频笔记 界面优化与屏幕适配(下)
  8. Android笔记 codeUI与html UI
  9. 从零开始学Pytorch(四)之softmax与分类模型
  10. C++学习系列笔记(六)