configure project qt_开启Qt Lite Project

Qt Lite 是一种概念,允许你更轻松地选择或排除不必要的功能。你可以通过Qt的configure的-feature-*和-no-feature-*选项在命令行中实现。图形化配置工具是Qt for Device Creation的一部分,使配置过程更加简便。Qt 5.8增强了configure功能,提供了更多的配置标志,并进行了内部重大更改以支持可扩展性。虽然图形工具仅在特定授权下可用,但手动编辑Srcqtbasesrccorelibglobalqfeatures.txt文件或使用qconfig工具也能完成类似功能。
摘要由CSDN通过智能技术生成

发布:

http://blog.qt.io/blog/2017/01/23/qt-5-8-released/

说法一:Qt Lite” is not a tool, but a concept that enables you to opt out of unwanted features more easily (or at all).

There is also a graphical convenience tool for selecting such feature sets, which is currently part of the “Qt for Device Creation” offering. On the command line, you can use configure’s “-feature-*” and “-no-feature-*” options.

说法二:Qt Lite is a term which refers to the enhancements that were made to the existing (Open Source) Qt configure functionality in Qt 5.8. You implicitly use Qt Lite any time you run the configure script, without even knowing it. Essentially, all “Qt Lite” does is provide a lot more of those -feature-* / -no-feature-* flags to configure than were previously available, and makes sure they actually work in concert with each other. Very significant internal changes were made to provide a scalable infrastructure for doing this.

The part which is available only under Qt for Device Creation licenses is the Qt Lite graphical configuration tool. The graphical tool is not required to use Qt Lite, but makes the process significantly easier by providing you with an easy-to-use interface for configuring features and automatically generating the configure.json files which are tedious and difficult to write by hand.

Hopefully this clarifies the situation for you.

最早的说明:

http://blog.qt.io/blog/2016/08/18/introducing-the-qt-lite-project-qt-for-any-platform-any-thing-any-size/

工具:

看起来免费版是没有这个功能的。

仔细研究了下,是增加了很多宏

具体 在:

Src\qtbase\src\corelib\global\qfeatures.txt

比如说里面的FTP的特性,如果你不想要,就增加

#define QT_NO_FTP 1

这样应该就可以了。5.7.1里有个qconfig工具,直接用那个也可以生成一个头文件。

经过指点得知,我发现的这个功能早就有了...

http://www.qtcn.org/bbs/read-htm-tid-62495.html

#ifndef JPEGDECODE_H #define JPEGDECODE_H #include "globalextern.h" typedef unsigned char BYTE; struct ImageComponentData { double value[3]; }; class MBitReader { public: MBitReader(BYTE* data,int currentDataIndex) { Data=data; m_currentBitPosition=8; m_currentDataIndex=currentDataIndex; } BYTE* Data; int m_currentDataIndex; int m_currentBitPosition; public: int ReadNextBit() { --m_currentBitPosition; if (m_currentBitPosition<0) { m_currentBitPosition+=8; ++m_currentDataIndex; } //if (m_currentDataIndex>632) theUI->label1->setText("Error!"); return ((Data[m_currentDataIndex]>>m_currentBitPosition) & 0x01); } void GoPreviousBit() { ++m_currentBitPosition; if (m_currentBitPosition>7) { m_currentBitPosition-=8; --m_currentDataIndex; } } int GetCurrentByte() { return Data[m_currentDataIndex]; } }; class MJpegDecode { private: struct _JFIFAPPOInfo { BYTE APP0[2]; /* 02h Application Use Marker */ BYTE Length[2]; /* 04h Length of APP0 Field */ BYTE Identifier[5]; /* 06h "JFIF" (zero terminated) Id String */ BYTE Version[2]; /* 0Bh JFIF Format Revision */ BYTE Units; /* 0Dh Units used for Resolution */ BYTE Xdensity[2]; /* 0Eh Horizontal Resolution */ BYTE Ydensity[2]; /* 10h Vertical Resolution */ BYTE XThumbnail; /* 12h Thumbnail Horizontal Pixel Count */ BYTE YThumbnail; /* 13h Thumbnail Vertical Pixel Count */ } JFIFAPPOINFO; struct _JFIFDQTInfo { BYTE DQT[2]; // 14h 量化表段标记 BYTE Length[2]; // 16h 量化表段长度 BYTE Identifier; // 18h 量化表ID BYTE QTData[64]; // 19h 量化表数据 } JFIFDQTINFO[2]; struct _JFIFSOFOInfo { BYTE SOFO[2]; // 9Eh 帧开始段标记 BYTE Length[2]; // A0h 帧开始段长度 BYTE BitCount; // A2h 样本精度bit位数 BYTE Height[2]; // A5h 图像像素宽度 BYTE Width[2]; // A3h 图像像素高度 BYTE ComponentsCount; // A7h 图像组件计数 BYTE YIdentifier; // A8h 亮度Y的ID号 BYTE YHVSamplingCoefficient; // A9h 亮度Y垂直和水平采样系数 BYTE YUsedDQTIdentifier; // AAh 亮度Y使用的量化表ID号 BYTE CbIdentifier; // ABh 色度Cb的ID号 BYTE CbHVSamplingCoefficient; // ACh 色度Cb垂直和水平采样系数 BYTE CbUsedDQTIdentifier; // ADh 色度Cb使用的量化表ID号 BYTE CrIdentifier; // AEh 色度Cr的ID号 BYTE CrHVSamplingCoefficient; // AFh 色度Cr垂直和水平采样系数 BYTE CrUsedDQTIdentifier; // B0h 色度Cr使用的量化表ID号 } JFIFSOFOINFO; struct _JFIFDHTInfo { BYTE DHT[2]; // B1h 哈夫曼表定义段标记 BYTE Length[2]; // B3h 哈夫曼表段长度 BYTE HTIdentifier; // B5h 哈夫曼表号 BYTE NBitsSymbolsCount[16]; // B6h (符号的二进制位长度为n)的符号个数 BYTE SymbolsTable[256]; // C6h 按递增次序代码长度排列的符号表 } JFIFDHTINFO[4]; struct _JFIFSOSInfo { BYTE SOS[2]; // 261h 扫描开始段标记 BYTE Length[2]; // 263h 扫描开始段长度 BYTE ComponentsCount; // 265h 扫描行内组件的数量 BYTE YIdentifier; // 266h 亮度Y的ID号 BYTE YHTTableID; // 267h 亮度Y使用的哈夫曼表ID号 BYTE CbIdentifier; // 268h 色度Cb的ID号 BYTE CbHTTableID; // 269h 色度Cb使用的哈夫曼表ID号 BYTE CrIdentifier; // 26Ah 色度Cr的ID号 BYTE CrHTTableID; // 26Bh 色度Cr使用的哈夫曼表ID号 BYTE Reserved[3]; // 26Ch 3个未知保留字节 } JFIFSOSINFO; private: struct HuffmanTable { int CodeOfFirstNLengthSymbol[17]; //长度为N的第一个码字的整数值 int NLengthToSymbolsTableIndex[16]; //查表得到第一个长度为N的符号位于符号表的索引 } HUFFMANTABLE[4]; public: int ReadJFIFInfo(const BYTE* const jfifData,int jfifDataSize); void DecodeData(int mcuStartIndex,BYTE* jfifData,int jfifDataSize,ImageComponentData*& targetBitmapData); void SetHuffmanTable(); void DecodeOneDUDC(MBitReader* myBitReader,double* DU,double& lastDC,int HTID); void DecodeOneDUAC(MBitReader* myBitReader,double* DU,int HTID); void DecodeOneMCU(MBitReader* myBitReader,int mcuXn,int mcuYn,int mcuWidth,int mcuHeight,double *DU,ImageComponentData* targetImage); void InverseQuantization(double* du,BYTE* quantizationTable); void InverseZigzag(double* sourceDU,double* targetDU); void IDCT(double* sourceDU,double* targetDU); void YCbCrToRGB(ImageComponentData* sourceImage,ImageComponentData* targetImage); public: int imageHeight; int imageWidth; int alignedImageWidth; int alignedImageHeight; struct HuffmanTableID { int dc; int ac; } HTID[3]; double DC[3]; int HSamplingCoefficient[3]; int VSamplingCoefficient[3]; int DQTID[3]; }; #endif // JPEGDECODE_H
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值