zoukankan      html  css  js  c++  java
  • 移植QT到ZedBoard(制作运行库镜像) 交叉编译 分类: ubuntu shell ZedBoard OpenCV 2014-11-08 18:49 219人阅读 评论(0) 收藏

    制作运行库

    由于ubuntu的Qt运行库在/usr/local/Trolltech/Qt-4.7.3/下,由makefile可以看到引用运行库是

     INCPATH = -I/usr/local/Trolltech/Qt-4.7.3/mkspecs/default -I. -I/usr/local/Trolltech/Qt-4.7.3/include/QtCore -I/usr/local/Trolltech/Qt-4.7.3/include/QtNetwork -I/usr/local/Trolltech/Qt-4.7.3/include/QtGui -I/usr/local/Trolltech/Qt-4.7.3/include -I. -I. -I.

    因此如果将编译后的可执行文件在ZedBoard上运行,也许早在相应的路径下找到运行库文件。Xilinx给出了Qt运行库镜像的制作方法:切换到qt-everywhere-opensource-src-4.7.3.tar.gz的解压路径,在控制台中输入

    复制代码
    dd if=/dev/zero of=qt_lib_ext4.img bs=1M count=80
    mkfs.ext4 -F qt_lib_ext4.img
    chmod go+w qt_lib_ext4.img
    mount qt_lib_ext4.img -o loop /mnt
    cp -rf /usr/local/Trolltech/Qt-4.7.3/* /mnt
    chmod go-w qt_lib_ext4.img
    umount /mnt
    复制代码

     即可。能找到生成的库文件镜像文件qt_lib_ext4.img,使用时将其挂载到

    /usr/local/Trolltech/Qt-4.7.3/

    即可。

    此时在/opt/zedboard/qt/build 下面的文件qt_lib.img就是qt的库文件啦
    至此qt移植成功了。要把qt的程序在板卡上运行,必须需要一个可执行文件,已我们上一节的helloworld为例

    在工程路径下,使用命令

    qmake -project

    生成新的工程文件lab2_qt_camera.pro。再使用

    qmake

    生成makefile文件,打开makefile文件可以看到

    复制代码
      1 #############################################################################
      2 # Makefile for building: lab2_qt_camera
      3 # Generated by qmake (2.01a) (Qt 4.7.3) on: Sun Dec 23 02:24:47 2012
      4 # Project:  lab2_qt_camera.pro
      5 # Template: app
      6 # Command: /usr/local/Trolltech/Qt-4.7.3/bin/qmake -o Makefile lab2_qt_camera.pro
      7 #############################################################################
      8 
      9 ####### Compiler, tools and options
     10 
     11 CC            = ${CROSS_COMPILE}gcc
     12 CXX           = ${CROSS_COMPILE}g++
     13 DEFINES       = -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED
     14 CFLAGS        = ${CROSS_COMPILE_CFLAGS} -I$(ZYNQ_QT_INSTALL)/include -DZYNQ -O2 -Wall -W -D_REENTRANT $(DEFINES)
     15 CXXFLAGS      = ${CROSS_COMPILE_CPPFLAGS} -I$(ZYNQ_QT_INSTALL)/include -DZYNQ -O2 -Wall -W -D_REENTRANT $(DEFINES)
     16 INCPATH       = -I/usr/local/Trolltech/Qt-4.7.3/mkspecs/default -I. -I/usr/local/Trolltech/Qt-4.7.3/include/QtCore -I/usr/local/Trolltech/Qt-4.7.3/include/QtNetwork -I/usr/local/Trolltech/Qt-4.7.3/include/QtGui -I/usr/local/Trolltech/Qt-4.7.3/include -I. -I. -I.
     17 LINK          = ${CROSS_COMPILE}g++
     18 LFLAGS        = -L$(ZYNQ_QT_INSTALL)/lib -Wl,-O1 -Wl,-rpath,/usr/local/Trolltech/Qt-4.7.3/lib
     19 LIBS          = $(SUBLIBS)  -L/usr/local/Trolltech/Qt-4.7.3//lib -lQtGui -L/usr/local/Trolltech/Qt-4.7.3//lib -lQtNetwork -lQtCore -lpthread 
     20 AR            = ${CROSS_COMPILE}ar cqs
     21 RANLIB        = 
     22 QMAKE         = /usr/local/Trolltech/Qt-4.7.3/bin/qmake
     23 TAR           = tar -cf
     24 COMPRESS      = gzip -9f
     25 COPY          = cp -f
     26 SED           = sed
     27 COPY_FILE     = $(COPY)
     28 COPY_DIR      = $(COPY) -r
     29 STRIP         = ${CROSS_COMPILE}strip
     30 INSTALL_FILE  = install -m 644 -p
     31 INSTALL_DIR   = $(COPY_DIR)
     32 INSTALL_PROGRAM = install -m 755 -p
     33 DEL_FILE      = rm -f
     34 SYMLINK       = ln -f -s
     35 DEL_DIR       = rmdir
     36 MOVE          = mv -f
     37 CHK_DIR_EXISTS= test -d
     38 MKDIR         = mkdir -p
     39 
     40 ####### Output directory
     41 
     42 OBJECTS_DIR   = ./
     43 
     44 ####### Files
     45 
     46 SOURCES       = main.cpp 
     47         mainwindow.cpp 
     48         v4l2grab.c moc_mainwindow.cpp
     49 OBJECTS       = main.o 
     50         mainwindow.o 
     51         v4l2grab.o 
     52         moc_mainwindow.o
    #之后省略
    复制代码

    使用的gcc是 ${CROSS_COMPILE}gcc,也就是arm-xilinx-linux-gnueabi-gcc,g++ 是${CROSS_COMPILE}g++,也就是arm-xilinx-linux-gnueabi-g++;因而编译后的可执行文件是可以再Zed上 运行的。再使用

    make

    生成可执行文件lab2_qt_camera。(可执行文件名默认和你的工程目录相同)

  • 相关阅读:
    常用的android弹出对话框
    AutoCompleteTextView与TextWatcher的结合
    As of ADT 14, resource fields cannot be used as switch cases
    Linux中tshark(wireshark)抓包工具使用方法详解
    php模板引擎
    php中实现精确设置session过期时间的方法
    什么情况下会调用到session_destroy()
    PHPSession-完全PHP5之session篇
    彻底理解PHP的SESSION机制
    闪迪U3利用工具U3-Pwn
  • 原文地址:https://www.cnblogs.com/paulweihan/p/4660120.html
Copyright © 2011-2022 走看看