本帖最后由 devin 于 2018-6-6 22:00 编辑
在Debian9.4虚拟机上交叉编译Qt5.11.0源文件,准备移植到arm上。出现了以下错误:Project ERROR: Qmake spec does not set MAKEFILE_GENERATOR.
具体操作过程如下:1.已经装好了arm-linux-gnueabihf-toolchain
- devin@debian-PC:/usr/bin$ ls arm-linux-gnueabihf*
- arm-linux-gnueabihf-addr2line arm-linux-gnueabihf-gcov-dump-6
- arm-linux-gnueabihf-ar arm-linux-gnueabihf-gcov-tool-6
- arm-linux-gnueabihf-as arm-linux-gnueabihf-gprof
- arm-linux-gnueabihf-c++filt arm-linux-gnueabihf-ld
- arm-linux-gnueabihf-cpp-6 arm-linux-gnueabihf-ld.bfd
- arm-linux-gnueabihf-dwp arm-linux-gnueabihf-ld.gold
- arm-linux-gnueabihf-elfedit arm-linux-gnueabihf-nm
- arm-linux-gnueabihf-g++ arm-linux-gnueabihf-objcopy
- arm-linux-gnueabihf-g++-6 arm-linux-gnueabihf-objdump
- arm-linux-gnueabihf-gcc arm-linux-gnueabihf-pkg-config
- arm-linux-gnueabihf-gcc-6 arm-linux-gnueabihf-ranlib
- arm-linux-gnueabihf-gcc-ar-6 arm-linux-gnueabihf-readelf
- arm-linux-gnueabihf-gcc-nm-6 arm-linux-gnueabihf-size
- arm-linux-gnueabihf-gcc-ranlib-6 arm-linux-gnueabihf-strings
- arm-linux-gnueabihf-gcov-6 arm-linux-gnueabihf-strip
复制代码 2.已经装好了以下必要的库
- libfreetype6-dev
- libfontconfig1-dev
- libxext-dev
- libxfixes-dev
- libxrender-dev
- libxi-dev
- libxkbcommon-dev
- libxcb1-dev
- libx11-xcb-dev
- libxcb-glx0-dev
- libxcb-keysyms1-dev
- libxcb-image0-dev
- libxcb-shm0-dev
- libxcb-icccm4-dev
- libxcb-sync0-dev
- libxcb-xfixes0-dev
- libxcb-shape0-dev
- libxcb-randr0-dev
- libxcb-render-util0-dev
复制代码 3.修改qmake.conf文件:
- devin@debian-PC:~/qt-src/qt-everywhere-src-5.11.0/qtbase/mkspecs/linux-arm-gnueabihf-g++$ more qmake.conf
- #
- # qmake configuration for building with arm-linux-gnueabihf-g++
- #
- MAKEFILE_GENERATOR = UNIX
- TEMPLATE = app
- CONFIG += qt warn_on release incremental link_prl gdb_dwarf_index
- QT += core gui
- QMAKE_INCREMENTAL_STYLE = sublib
- include(../common/linux.conf)
- include(../common/gcc-base-unix.conf)
- include(../common/g++-unix.conf)
- # modifications to g++.conf
- QMAKE_CC = arm-linux-gnueabihf-gcc
- QMAKE_CXX = arm-linux-gnueabihf-g++
- QMAKE_LINK = arm-linux-gnueabihf-g++
- QMAKE_LINK_SHLIB = arm-linux-gnueabihf-g++
- # modifications to linux.conf
- QMAKE_AR = arm-linux-gnueabihf-ar cqs
- QMAKE_OBJCOPY = arm-linux-gnueabihf-objcopy
- QMAKE_NM = arm-linux-gnueabihf-nm -P
- QMAKE_STRIP = arm-linux-gnueabihf-strip
- load(qt_config)
复制代码 4.在~/qt-src/qt-everywhere-src-5.11.0中新建脚本文件 cfg_arm.sh
- devin@debian-PC:~/qt-src/qt-everywhere-src-5.11.0$ more cfg_arm.sh
- #!/bin/sh
- ./configure \
- -v \
- -prefix /opt/qt5.11.0-armhf \
- -opensource \
- -confirm-license \
- -release \
- -xplatform linux-arm-gnueabihf-g++ \
- -make libs \
- -qt-libjpeg \
- -qt-libpng \
- -qt-zlib \
- -skip qtpurchasing \
- -nomake examples \
- -nomake tests \
- -make tools
复制代码
5.运行cfg_arm后出现以下错误:
Project ERROR: Qmake spec does not set MAKEFILE_GENERATOR.
- root@debian-PC:/home/devin/qt-src/qt-everywhere-src-5.11.0# ./cfg_arm.sh
- + cd qtbase
- + /home/devin/qt-src/qt-everywhere-src-5.11.0/qtbase/configure -top-level -v -prefix /opt/qt5.11.0-armhf -opensource -confirm-license -release -xplatform linux-arm-gnueabihf-g++ -make libs -qt-libjpeg -qt-libpng -qt-zlib -skip qtpurchasing -nomake examples -nomake tests -make tools
- Creating qmake...
- make: Nothing to be done for 'first'.
- Command line: -v -prefix /opt/qt5.11.0-armhf -opensource -confirm-license -release -xplatform linux-arm-gnueabihf-g++ -make libs -qt-libjpeg -qt-libpng -qt-zlib -skip qtpurchasing -nomake examples -nomake tests -make tools
- Project ERROR: Qmake spec does not set MAKEFILE_GENERATOR.
复制代码
|