php5.6 交叉编译,基于Nanopi2 硬件  交叉编译QT 5.6 (支持硬件OpenGL)

1、移植dbus:

./configure --host=arm-linux --prefix=/usr/local/arm/ CC=arm-linux-gcc --cache-file=arm-linux.cache --without-x CFLAGS=-I/usr/local/arm/include LDFLAGS=-L/usr/local/arm/lib

报错:checking abstract socket namespace... configure: error: cannot run test program while cross compiling

解决:1,首先用locate pkgconfig查看下pkgconfig安装了没有,一般都安装了。找到路径配置到环境变量里:export PKG_CONFIG_PATH=/usr/lib/pkgconfig

2,光设这个环境变量还是不行的,在终端里输入:

#echo ac_cv_have_abstract_sockets=yes>arm-linux.cache

之后,./configure通过!

make

make install

2、移植alsa

./configure --target=arm-linux --host=arm --prefix=/usr/local/arm/

make

make install

3、移植 pcre-8.39.tar.bz2  给qt编译的参数-system-pcre 使用;

./configure --host=arm --target=arm-linux --prefix=/usr/local/arm --enable-pcre16

make

make install

4、移植QT5.6

echo yes | ./configure --prefix=/usr/local/Trolltech/QtEmbedded-5.6.0-arm -opensource -debug -no-c++11 -xplatform linux-arm -alsa -opengl es2 -eglfs -qt-freetype -system-pcre -nomake tests -make examples -v  -I/usr/local/arm/include -L/usr/local/arm/lib -I/usr/local/arm/nexell/include/khronos -L/usr/local/arm/nexell/lib

make

make install

a、

eglconvenience/qeglstreamconvenience_p.h:56:9: error: ‘intptr_t’ does not name a type

typedef intptr_t EGLAttrib;

^

In file included from eglconvenience/qeglstreamconvenience.cpp:34:0:

增加 typedef int intptr_t ;

b、

vim qtbase/src/plugins/platforms/eglfs/deviceintegration/eglfs_mali/qeglfsmaliintegration.cpp

注释掉 fbdev_window 结构体定义

5、附件文件说明(文件下载地址 :http://pan.baidu.com/s/1c12HCLM)

linux-arm.tar.bz2

qt的编译配置文件,解压到QT源码的qtbase/mkspecs/目录下,主要修改qmake.conf文件

#

# qmake configuration for building with arm-linux-gnueabi-g++

#

MAKEFILE_GENERATOR      = UNIX

CONFIG                 += incremental

QMAKE_INCREMENTAL_STYLE = sublib

QT_QPA_DEFAULT_PLATFORM = linuxfb

QMAKE_CFLAGS_RELEASE   += -O2 -march=armv7-a

QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv7-a

include(../common/linux.conf)

include(../common/gcc-base-unix.conf)

include(../common/g++-unix.conf)

#opengl2 lib and include

QMAKE_INCDIR_OPENGL_ES2 = /usr/local/arm/nexell/include/khronos/

QMAKE_LIBDIR_OPENGL_ES2 = /usr/local/arm/nexell/lib

QMAKE_INCDIR_EGL = /usr/local/arm/nexell/include/khronos/

QMAKE_LIBDIR_EGL = /usr/local/arm/nexell/lib

# modifications to g++.conf

QMAKE_CC                = arm-linux-gcc

QMAKE_CXX               = arm-linux-g++

QMAKE_LINK              = arm-linux-g++

QMAKE_LINK_SHLIB        = arm-linux-g++

# modifications to linux.conf

QMAKE_AR                = arm-linux-ar cqs

QMAKE_OBJCOPY           = arm-linux-objcopy

QMAKE_NM                = arm-linux-nm -P

QMAKE_STRIP             = arm-linux-strip

load(qt_config)

b、nexell.tar.bz2

这是三星官方提供的OpenGL的库和头文件

解压到 /usr/local/arm 下面。如果需的话把这个包也解压到开发板中。

c、QtEmbedded-5.6.0-arm.tar.bz2

编译完成的安装包,可以解压到开发板中运行测试程序

比如:进入QtEmbedded-5.6.0-arm/examples/qt3d/lights

# ./lights -platform eglfs

可以在屏幕上看到3D灯照的效果。

QQ交流群: 64148200

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是在 Windows 平台上使用 MSVC 2015 编译 Qt 5.6 静态库的步骤: 1. 下载 Qt 5.6 源代码,可以从官网下载或者从 GitHub 上下载。 2. 安装 Perl 解释器。可以从 ActivePerl 官网下载。 3. 安装 Python 解释器。可以从 Python 官网下载。 4. 安装 Python 的包管理工具 pip。在命令行中输入 `python -m ensurepip` 命令安装。 5. 安装 Python 的依赖库 pywin32。在命令行中输入 `pip install pywin32` 命令安装。 6. 安装 Qt 5.6 的依赖库。在命令行中进入 Qt 5.6 源代码目录,输入 `configure -static -prefix C:\Qt\5.6-static -opensource -confirm-license -nomake examples -nomake tests` 命令安装。 7. 编译 Qt 5.6 静态库。在命令行中输入 `nmake` 命令编译。 8. 安装 Qt 5.6 静态库。在命令行中输入 `nmake install` 命令安装。 9. 配置 Qt Creator。打开 Qt Creator,选择 Options -> Build & Run -> Kits,选择一个已安装的 Qt 版本,将编译器设置为 MSVC 2015,将 Qt 版本设置为静态编译的 Qt 5.6。 10. 创建一个 Qt 静态工程。在 Qt Creator 中选择 File -> New File or Project -> Application -> Qt Widgets Application,选择一个路径和名称,然后点击 Next。在 Kits 中选择刚才配置的 Qt 静态版本,然后点击 Next。在 Class Information 中选择 Main Window 和创建的工程名称,然后点击 Next。最后点击 Finish。 11. 编译和运行 Qt 静态工程。在 Qt Creator 中点击 Build -> Build All,然后点击 Run -> Run。如果一切正常,将会看到一个空的窗口。 希望这些步骤能够帮助你进行 Qt 5.6 的静态编译。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值