Qt源码编译

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:

本篇文档主要是针对在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源码编译过程中遇到的问题及解决方法的总结,希望对各位提供一点帮助!

  • 12
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值