交叉编译QT,因为要用的xcb等库,所以直接把开发板内的/lib /usr/lib /usr/include拷贝到了虚拟机,
解压qt源码,配置qmake.conf
#
#
MAKEFILE_GENERATOR = UNIX
CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublib
include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)
QMAKE_CXXFLAGS += -I/home/ubuntu/yk/usr/include
QMAKE_CXXFLAGS += -I/home/ubuntu/yk/usr/include/aarch64-linux-gnu
QMAKE_CFLAGS += -I/home/ubuntu/yk/usr/include
QMAKE_CFLAGS += -I/home/ubuntu/yk/usr/include/aarch64-linux-gnu
QMAKE_LFLAGS += /home/ubuntu/yk/qt-everywhere-opensource-src-5.8.0/qtbase/lib/
QMAKE_LFLAGS += -L/home/ubuntu/yk/lib/aarch64-linux-gnu
QMAKE_LFLAGS += -Wl,-rpath-link,/home/ubuntu/yk/lib/aarch64-linux-gnu
QMAKE_LFLAGS += -L/home/ubuntu/yk/usr/lib/aarch64-linux-gnu
QMAKE_LFLAGS += -Wl,-rpath-link,/home/ubuntu/yk/usr/lib/aarch64-linux-gnu
QMAKE_LFLAGS += -L/home/ubuntu/yk/lib
QMAKE_LFLAGS += -Wl,-rpath-link,/home/ubuntu/yk/lib
QMAKE_LFLAGS += -L/home/ubuntu/yk/usr/lib
QMAKE_LFLAGS += -Wl,-rpath-link,/home/ubuntu/yk/usr/lib
QMAKE_LIBS += -lpthread -lgobject-2.0 -lglib-2.0 -lpcre
QMAKE_CFLAGS += -O2 -march=armv7-a -mfpu=neon -mfloat-abi=hard
QMAKE_CXXFLAGS += -O2 -march=armv7-a -mfpu=neon -mfloat-abi=hard
QMAKE_LFLAGS += -L/home/ubuntu/yk/lib
QMAKE_LFLAGS += -Wl,-rpath-link,/home/ubuntu/yk/lib
QMAKE_LFLAGS += -L/home/ubuntu/yk/usr/lib
QMAKE_LFLAGS += -Wl,-rpath-link,/home/ubuntu/yk/usr/lib
QMAKE_CC = aarch64-linux-gnu-gcc
QMAKE_CXX = aarch64-linux-gnu-g++
QMAKE_LINK = aarch64-linux-gnu-g++
QMAKE_LINK_SHLIB = aarch64-linux-gnu-g++
QMAKE_AR = aarch64-linux-gnu-ar cqs
QMAKE_OBJCOPY = aarch64-linux-gnu-objcopy
QMAKE_NM = aarch64-linux-gnu-nm -P
QMAKE_STRIP = aarch64-linux-gnu-strip
load(qt_config)
执行configure后提示错误
ubuntu@ubuntuPC:~/yk/qt-everywhere-opensource-src-5.8.0$ ./configure -release -nomake examples -no-iconv -qt-xcb -qpa xcb -no-opengl -sysroot /home/ubuntu/yk/ -xplatform linux-arm-gnueabi-g++ -prefix /home/ubuntu/Qt5.8.0_arm -opensource -confirm-license
This is the Qt Open Source Edition.
You are licensed to use this software under the terms of
the GNU Lesser General Public License (LGPL) version 3.
You are also licensed to use this software under the terms of
the GNU General Public License (GPL) version 2.
You have already accepted the terms of the Open Source license.
Creating qmake...
........................................................................................Done.
Info: creating stash file /home/ubuntu/yk/qt-everywhere-opensource-src-5.8.0/.qmake.stash
Info: creating super cache file /home/ubuntu/yk/qt-everywhere-opensource-src-5.8.0/.qmake.super
Running configuration tests...
Checking for gold linker... yes
Checking for valid makespec... yes
Checking for target architecture... Project ERROR: Could not determine target architecture. See config.log for details.
查看config.log
executing config test architecture
找不到sys/cdefs.h
但是我配置的目录下面 /home/ubuntu/yk/usr/include/aarch64-linux-gnu 有sys/cdefs.h
找了一天问题了,还缺少配置什么路径?
没有找到xcb的安装方法
安装下标准库,检查下有没有添加到编译的头文件路径,参考:https://blog.csdn.net/sfdazsdf/article/details/48625545