提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
提示:这里可以添加本文要记录的大概内容:
本篇文档主要是针对在Linux环境下对Qt 5.7.0源码编译过程中遇到的问题及解决办法的总结,其中已适配成功的操作系统有:麒麟3.0、凝思6.0.60、redhat 5.6等。
提示:以下是本篇文章正文内容,下面案例可供参考
一、Qt是什么?
Qt是一个跨平台的C++图形用户界面应用程序框架,它为应用程序开发者提供建立图形界面所需的所有功能。
二、编译步骤
1、编译环境
操作系统:麒麟3.0、红帽5.6、凝思6.0.60
编译依赖:openssl、libxcb(1.12)、gcc、libpthread-stubs(0.1)、xcb-proto(1.12)
qt及qtcreator源码版本:5.7.0、4.0.2
2、编译命令
OPENSSL_LIBS=‘-L/usr/local/ssl/lib -lssl -lcrypto’ …/qt-everywhere-opensource-src-5.7.0/configure --prefix=/home/linux/Qt5.7.0_1 -nomake tests -nomake examples -opensource -openssl-linked -I /usr/local/ssl/include -qt-xcb
注意:需要配置openssl环境变量:export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
3、编译过程中遇到的问题及解决办法
问题1:__u64、__s64找不到
解决办法:修改/usr/include/asm/types.h文件,注释掉#if defined(GNUC) && !defined(STRICY_ANSI)… #endif
问题2:_le64、__be64找不到
解决办法:修改文件/usr/include/linux/types.h文件,注释掉#if defined(GNUC) && !defined(STRICY_ANSI)… #endif
问题3:找不到#include <sys/signalfd.h>文件,原因是该文件是内核2.6.22开始加入的
解决办法:从高版本内核中拷贝一份该文件到/usr/include/sys目录下
问题4:/home/linux/qt/qt-everywhere-opensource-src-5.7.0/qtbase/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp:99:21: error: ‘FC_WEIGHT_ULTRABLACK’ was not declared in this scope
解决办法:修改FC_WEIGHT_ULTRABLACK为215
问题5:/home/linux/qt/qt-everywhere-opensource-src-5.7.0/qtbase/src/plugins/platforms/offscreen/qoffscreenintegration_x11.cpp:232:94: error: ‘glXGetProcAddressARB’ was not declared in this scope
解决办法:注释掉该行,不会影响大功能
问题6:qtbase/src/3rdparty/xcb/include/xcb/xcb_pixel.h:_X_INLINE static uint32_t类似错误
解决办法:将_X_INLINE修改为inline
问题7:qtbase/src/3rdparty/xcb/xcb-util-keysems/keysyms.c中XK_ISO_Level5_LOCK未声明
解决办法:修改XK_ISO_Level5_LOCK为0xfe13
问题8:qtbase/plugins/platforms/xcb/qxcbkeyboard.cpp中XK_dead_currency未声明
解决办法:修改XK_dead_currency为0xfe6f
问题9:qtgamepad/src/plugins/gamepads/evdev/qevdevgamepadbackend.cpp: BTN_TRIGGER_HAPPY1、BTN_TRIGGER_HAPPY2、BTN_TRIGGER_HAPPY3、BTN_TRIGGER_HAPPY4未声明
解决办法:注释掉这几行
问题10:qtbase/3rdparty/xcb/xcb_bitops.h: _X_INLINE static uint32_t类似错误
解决办法:将_X_INLINE修改为inline
总结
以上就是在Liunx环境下对Qt 5.7.0源码编译过程中遇到的问题及解决方法的总结,希望对各位提供一点帮助!