作者归档:Windows Hao

关于Windows Hao

力求做到最好的数据恢复效果,降低数据丢失带来的损失,为您的数据安全保驾护航。

C++内存泄露和检测

C++中的内存泄露一般指堆中的内存泄露。堆内存是我们手动malloc/realloc/new申请的,程序不会自动回收,需要调用free或delete手动释放,否则就会造成内存泄露。内存泄露其实还应该包括系统资料的泄露,比如socket连接等,使用完后也要释放。

内存泄露的原因:

总结下来,内存泄露大概有一下几个原因:

1、编码错误:malloc、realloc、new申请的内存在堆上,需要手动显示释放,调用free或delete。申请和释放必须成对出现malloc/realloc对应free,new对应delete。前者不会运行构造/析构函数,后者会。对于C++内置数据类型可能没差别,但是对于自己构造的类,可能在析构函数中释放系统资源或释放内存,所以要对应使用。

2、“无主”内存:申请内存后,指针指向内存的起始地址,若丢失或修改这个指针,那么申请的内存将丢失且没有释放。

3、异常分支导致资源未释放:程序正常执行没有问题,但是如果遇到异常,正常执行的顺序或分支会被打断,得不到执行。所以在异常处理的代码中,要确保系统资源的释放。

4、隐式内存泄露:程序运行中不断申请内存,但是直到程序结束才释放。有些服务器会申请大量内存作为缓存,或申请大量Socket资源作为连接池,这些资源一直占用直到程序退出。服务器运行起来一般持续几个月,不及时释放可能会导致内存耗尽。

5、类的析构函数为非虚函数:析构函数为虚函数,利用多态来调用指针指向对象的析构函数,而不是基类的析构函数。

内存泄露的检测

内存泄露的关键就是记录分配的内存和释放内存的操作,看看能不能匹配。跟踪每一块内存的声明周期,例如:每当申请一块内存后,把指向它的指针加入到List中,当释放时,再把对应的指针从List中删除,到程序最后检查List就可以知道有没有内存泄露了。Window平台下的Visual Studio调试器和C运行时(CRT)就是用这个原理来检测内存泄露。

在VS中使用时,需加上

#define _CRTDBG_MAP_ALLOC

#include <crtdbg.h>

crtdbg.h的作用是将malloc和free函数映射到它们的调试版本_malloc_dbg和_free_dbg,这两个函数将跟踪内存分配和释放(在Debug版本中有效)

_CrtDumpMemoryLeaks();

函数将显示当前内存泄露,也就是说程序运行到此行代码时的内存泄露,所有未销毁的对象都会报出内存泄露,因此要让这个函数尽量放到最后。

例如:

上述代码中,内存申请了两块,但是只释放了一块,运行调试,会在output窗口输出:

Dumping objects ->
{136} normal block at 0x00084D70, 50 bytes long.
Data: <                > CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
Object dump complete.

可以看到会检测到内存泄露。 但是并没有检测到泄露内存申请的位置,已经加了宏定义#define _CRTDBG_MAP_ALLOC。原因是申请内存用的是new,而刚刚包含头文件和加宏定义是重载了malloc函数,并没有重载new操作符,所以要自己定义重载new操作符才能检测到泄露内存的申请位置。修改如下:

运行结果:

Detected memory leaks!
Dumping objects ->
e:\c++\test\内存泄露检测2\main.cpp(13) : {62} normal block at 0x001714F8, 50 bytes long.
Data: <                > CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
e:\c++\test\内存泄露检测2\main.cpp(12) : {61} normal block at 0x00171458, 100 bytes long.
Data: <                > CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
Object dump complete.

可以看到

main.cpp()括号里面的数字就是泄露内存的起始位置。那么后面的{62} normal block at 0x001714F8, 50 bytes long.
代表什么?

大括号{}里面的数字表示第几次申请内存操作;0x001714F8表示泄露内存的起始地址,CD CD表示泄露内存的内容。

为什么是第62次申请内存,因为在初始化操作时也申请了内存。通过这个信息,可以设置断点。调用long _CrtSetBreakAlloc(long nAllocID)可以再第nAllocID次申请内存是中断,在中断时获取的信息比在程序终止时获取的信息要多,你可以调试,查看变量状态,对函数调用调试分析,解决内存泄露。

block分为3中类型,此处为normal,表示普通,此外还有client表示客户端(专门用于MFC),CRT表示运行时(有CRT库来管理,一般不会泄露),free表示已经释放掉的块,igore表示要忽略的块。

在上面程序中,调用_CrtDumpMemoryLeaks()来检测内存泄露,如果程序可能在多个地方终止,必须在多个地方调用这个函数,这样比较麻烦,可以在程序起始位置调用_CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF ),这样无论程序何时终止,都会在终止前调用_CrtDumpMemoryLeaks()。

 

除此之外,还可以在某时刻设置检查点,获取当时内存状态的快照。比较不同时刻内存状态的差异。

输出结果为:

0 bytes in 0 Free Blocks.
100 bytes in 1 Normal Blocks.
8434 bytes in 54 CRT Blocks.
0 bytes in 0 Ignore Blocks.
0 bytes in 0 Client Blocks.
Largest number used: 8963 bytes.
Total allocations: 14003 bytes.
0 bytes in 0 Free Blocks.
150 bytes in 2 Normal Blocks.
8434 bytes in 54 CRT Blocks.
0 bytes in 0 Ignore Blocks.
0 bytes in 0 Client Blocks.
Largest number used: 8963 bytes.
Total allocations: 14053 bytes.
0 bytes in 0 Free Blocks.
50 bytes in 1 Normal Blocks.
0 bytes in 0 CRT Blocks.
0 bytes in 0 Ignore Blocks.
0 bytes in 0 Client Blocks.
Largest number used: 0 bytes.
Total allocations: 50 bytes.

也可以用此法更复杂检测内存泄露,例如设置检查点,检查检查点之间的内存泄露。

Qt 5.7.0 动态编译(VS2013 Update 5) 支持OpenSSL ICU WebEngine(x86、x86-64)

1、带有32位与64位版本;
2、支持WebEngine模块;
3、具有开发文档;
4、具有Debug、Release;(64bit版本只提供Release)

QtLibrary(VS)-x86(5.7.0):http://pan.baidu.com/s/1nuQfBZj
QtLibrary(VS)-x86-64(5.7.0):http://pan.baidu.com/s/1i5M0oCl

编译配置说明:
x86:
Environment:
INCLUDE=
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\ATLMFC\INCLUDE
C:\Program Files (x86)\Windows Kits\8.1\include\shared
C:\Program Files (x86)\Windows Kits\8.1\include\um
C:\Program Files (x86)\Windows Kits\8.1\include\winrt

LIB=
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\LIB
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\ATLMFC\LIB
C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86

PATH=
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow
C:\Program Files (x86)\Microsoft SDKs\F#\3.1\Framework\v4.0\
C:\Program Files (x86)\MSBuild\12.0\bin
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools
C:\Windows\Microsoft.NET\Framework\v4.0.30319
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\VCPackages
C:\Program Files (x86)\HTML Help Workshop
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Team Tools\Performance Tools
C:\Program Files (x86)\Windows Kits\8.1\bin\x86
C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\
C:\Python27\
C:\Python27\Scripts
C:\Perl64\site\bin
C:\Perl64\bin
C:\Windows\system32
C:\Windows
C:\Windows\System32\Wbem
C:\Windows\System32\WindowsPowerShell\v1.0\
C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\
C:\Program Files\Microsoft SQL Server\110\Tools\Binn\
C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.0\
C:\Program Files\Microsoft SQL Server\120\Tools\Binn\
C:\Program Files\Git\cmd
C:\Ruby23-x64\bin
C:\putty
C:\Program Files\7-Zip
D:\icu_x86\bin
D:\icu_x86\lib
D:\openssl_x86\bin
D:\openssl_x86\lib
D:\x86\qt-everywhere-opensource-src-5.7.0\gnuwin32\bin
Configuration:
precompile_header
pcre
debug
msvc_mp
Qt Configuration:
minimal-config
small-config
medium-config
large-config
full-config
debug_and_release build_all release
debug
shared
zlib
icu
angle
png
doubleconversion
freetype
harfbuzz
build_all
accessibility
opengl
opengles2
egl
ssl
openssl
dbus
audio-backend
directwrite
directwrite2
native-gestures
qpa
concurrent

QMAKESPEC...................win32-msvc2013 (detected)
Architecture................i386, features: sse sse2
Host Architecture...........i386, features: sse sse2
Maketool....................nmake
Debug build.................yes (combined)
Default build...............debug
Force debug info............no
Force optimized tools.......no
C++ language standard.......auto
Link Time Code Generation...no
Using PCH ..................yes
Accessibility support.......yes
RTTI support................yes
SSE support.................SSE2 SSE3 SSSE3 SSE4.1 SSE4.2
AVX support.................AVX AVX2
AVX512 support..............<none>
NEON support................no
OpenGL support..............yes
Large File support..........yes
NIS support.................no
Iconv support...............no
Evdev support...............no
Mtdev support...............no
Inotify support.............no
eventfd(7) support..........no
Glib support................no
CUPS support................no
OpenVG support..............no
SSL support.................yes
OpenSSL support.............yes
libproxy support............no
Qt D-Bus support............runtime
Qt Widgets module support...yes
Qt GUI module support.......yes
QML debugging...............yes
DirectWrite support.........yes
DirectWrite 2 support.......yes
Use system proxies..........no

QPA Backends:
GDI.....................yes
Direct2D................no

Third Party Libraries:
ZLIB support............qt
GIF support.............plugin
JPEG support............plugin
PNG support.............yes
DoubleConversion........qt
FreeType support........yes
Fontconfig support......no
HarfBuzz support........qt
PCRE support............qt
ICU support.............yes
ANGLE...................yes
Dynamic OpenGL..........no

Styles:
Windows.................yes
Windows XP..............yes
Windows Vista...........yes
Fusion..................yes

Sql Drivers:
ODBC....................yes
MySQL...................no
OCI.....................no
PostgreSQL..............no
TDS.....................no
DB2.....................no
SQLite..................yes (qt)
SQLite2.................no
InterBase...............no

Sources are in..............D:\x86\qt-everywhere-opensource-src-5.7.0\qtbase
Build is done in............D:\x86\qt-everywhere-opensource-src-5.7.0\qtbase
Install prefix..............D:\QtLibrary(VS)-x86
Headers installed to........D:\QtLibrary(VS)-x86\include
Libraries installed to......D:\QtLibrary(VS)-x86\lib
Arch-dep. data to...........D:\QtLibrary(VS)-x86
Plugins installed to........D:\QtLibrary(VS)-x86\plugins
Library execs installed to..D:\QtLibrary(VS)-x86\bin
QML1 imports installed to...D:\QtLibrary(VS)-x86\imports
QML2 imports installed to...D:\QtLibrary(VS)-x86\qml
Binaries installed to.......D:\QtLibrary(VS)-x86\bin
Arch-indep. data to.........D:\QtLibrary(VS)-x86
Docs installed to...........D:\QtLibrary(VS)-x86\doc
Translations installed to...D:\QtLibrary(VS)-x86\translations
Examples installed to.......D:\QtLibrary(VS)-x86\examples
Tests installed to..........D:\QtLibrary(VS)-x86\tests
Include paths...............D:\openssl_x86\include D:\icu_x86\include
Additional libraries........-LD:\openssl_x86\lib -LD:\openssl_x86\bin -LD:\icu_x86\lib -LD:\icu_x86\bin

Info: creating super cache file D:\x86\qt-everywhere-opensource-src-5.7.0\.qmake.super
Qt is now configured for building. Just run nmake.
To reconfigure, run nmake confclean and configure.
------------------------------------------------------------------------------------------------------------------------------------------
x86-64:
Environment:
INCLUDE=
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\ATLMFC\INCLUDE
C:\Program Files (x86)\Windows Kits\8.1\include\shared
C:\Program Files (x86)\Windows Kits\8.1\include\um
C:\Program Files (x86)\Windows Kits\8.1\include\winrt

LIB=
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\LIB\amd64
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\ATLMFC\LIB\amd64
C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x64

PATH=
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow
C:\Program Files (x86)\Microsoft SDKs\F#\3.1\Framework\v4.0\
C:\Program Files (x86)\MSBuild\12.0\bin
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\x86_amd64
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools
C:\Windows\Microsoft.NET\Framework\v4.0.30319
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\VCPackages
C:\Program Files (x86)\HTML Help Workshop
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Team Tools\Performance Tools
C:\Program Files (x86)\Windows Kits\8.1\bin\x86
C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\x64\
C:\Python27\
C:\Python27\Scripts
C:\Perl64\site\bin
C:\Perl64\bin
C:\Windows\system32
C:\Windows
C:\Windows\System32\Wbem
C:\Windows\System32\WindowsPowerShell\v1.0\
C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\
C:\Program Files\Microsoft SQL Server\110\Tools\Binn\
C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.0\
C:\Program Files\Microsoft SQL Server\120\Tools\Binn\
C:\Program Files\Git\cmd
C:\Ruby23-x64\bin
C:\putty
C:\Program Files\7-Zip
D:\icu_x86-64\bin
D:\icu_x86-64\lib
D:\openssl_x86-64\bin
D:\openssl_x86-64\lib
D:\x86-64\qt-everywhere-opensource-src-5.7.0\gnuwin32\bin
Configuration:
precompile_header
pcre
release
msvc_mp
Qt Configuration:
minimal-config
small-config
medium-config
large-config
full-config
release
shared
zlib
icu
angle
png
doubleconversion
freetype
harfbuzz
accessibility
opengl
opengles2
egl
ssl
openssl
dbus
audio-backend
directwrite
directwrite2
native-gestures
qpa
concurrent

QMAKESPEC...................win32-msvc2013 (detected)
Architecture................x86_64, features: sse sse2
Host Architecture...........x86_64, features: sse sse2
Maketool....................nmake
Debug.......................no
Force debug info............no
C++ language standard.......auto
Link Time Code Generation...no
Using PCH ..................yes
Accessibility support.......yes
RTTI support................yes
SSE support.................SSE2 SSE3 SSSE3 SSE4.1 SSE4.2
AVX support.................AVX AVX2
AVX512 support..............<none>
NEON support................no
OpenGL support..............yes
Large File support..........yes
NIS support.................no
Iconv support...............no
Evdev support...............no
Mtdev support...............no
Inotify support.............no
eventfd(7) support..........no
Glib support................no
CUPS support................no
OpenVG support..............no
SSL support.................yes
OpenSSL support.............yes
libproxy support............no
Qt D-Bus support............runtime
Qt Widgets module support...yes
Qt GUI module support.......yes
QML debugging...............yes
DirectWrite support.........yes
DirectWrite 2 support.......yes
Use system proxies..........no

QPA Backends:
GDI.....................yes
Direct2D................no

Third Party Libraries:
ZLIB support............qt
GIF support.............plugin
JPEG support............plugin
PNG support.............yes
DoubleConversion........qt
FreeType support........yes
Fontconfig support......no
HarfBuzz support........qt
PCRE support............qt
ICU support.............yes
ANGLE...................yes
Dynamic OpenGL..........no

Styles:
Windows.................yes
Windows XP..............yes
Windows Vista...........yes
Fusion..................yes

Sql Drivers:
ODBC....................yes
MySQL...................no
OCI.....................no
PostgreSQL..............no
TDS.....................no
DB2.....................no
SQLite..................yes (qt)
SQLite2.................no
InterBase...............no

Sources are in..............D:\x86-64\qt-everywhere-opensource-src-5.7.0\qtbase
Build is done in............D:\x86-64\qt-everywhere-opensource-src-5.7.0\qtbase
Install prefix..............D:\QtLibrary(VS)-x86-64
Headers installed to........D:\QtLibrary(VS)-x86-64\include
Libraries installed to......D:\QtLibrary(VS)-x86-64\lib
Arch-dep. data to...........D:\QtLibrary(VS)-x86-64
Plugins installed to........D:\QtLibrary(VS)-x86-64\plugins
Library execs installed to..D:\QtLibrary(VS)-x86-64\bin
QML1 imports installed to...D:\QtLibrary(VS)-x86-64\imports
QML2 imports installed to...D:\QtLibrary(VS)-x86-64\qml
Binaries installed to.......D:\QtLibrary(VS)-x86-64\bin
Arch-indep. data to.........D:\QtLibrary(VS)-x86-64
Docs installed to...........D:\QtLibrary(VS)-x86-64\doc
Translations installed to...D:\QtLibrary(VS)-x86-64\translations
Examples installed to.......D:\QtLibrary(VS)-x86-64\examples
Tests installed to..........D:\QtLibrary(VS)-x86-64\tests
Include paths...............D:\openssl_x86-64\include D:\icu_x86-64\include
Additional libraries........-LD:\openssl_x86-64\lib -LD:\openssl_x86-64\bin -LD:\icu_x86-64\lib -LD:\icu_x86-64\bin

Info: creating super cache file D:\x86-64\qt-everywhere-opensource-src-5.7.0\.qmake.super
Qt is now configured for building. Just run nmake.
To reconfigure, run nmake confclean and configure.

Qt 5.6.0 动态编译(VS2013 Update 5) 支持OpenSSL ICU WebEngine(x86、x86-64)

1、带有32位与64位版本;
2、支持WebEngine模块;
3、具有开发文档;
4、具有Debug、Release;

QtLibrary(VS)-x86(5.6.0):http://pan.baidu.com/s/1bARN9k
QtLibrary(VS)-x86-64(5.6.0):http://pan.baidu.com/s/1skOAx0x

编译配置说明:
x86:

Environment:
INCLUDE=
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\ATLMFC\INCLUDE
C:\Program Files (x86)\Windows Kits\8.1\include\shared
C:\Program Files (x86)\Windows Kits\8.1\include\um
C:\Program Files (x86)\Windows Kits\8.1\include\winrt

LIB=
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\LIB
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\ATLMFC\LIB
C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86

PATH=
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow
C:\Program Files (x86)\Microsoft SDKs\F#\3.1\Framework\v4.0\
C:\Program Files (x86)\MSBuild\12.0\bin
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools
C:\Windows\Microsoft.NET\Framework\v4.0.30319
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\VCPackages
C:\Program Files (x86)\HTML Help Workshop
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Team Tools\Performance Tools
C:\Program Files (x86)\Windows Kits\8.1\bin\x86
C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\
C:\Python27\
C:\Python27\Scripts
C:\Perl64\site\bin
C:\Perl64\bin
C:\Windows\system32
C:\Windows
C:\Windows\System32\Wbem
C:\Windows\System32\WindowsPowerShell\v1.0\
C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\
C:\Program Files\Microsoft SQL Server\110\Tools\Binn\
C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.0\
C:\Program Files\Microsoft SQL Server\120\Tools\Binn\
C:\Program Files\Git\cmd
C:\Ruby23-x64\bin
C:\putty
C:\Program Files\7-Zip
D:\icu_x86\bin
D:\icu_x86\lib
D:\openssl_x86\bin
D:\openssl_x86\lib
D:\x86\qt-everywhere-opensource-src-5.6.0\gnuwin32\bin
Configuration:
pcre
debug
msvc_mp
Qt Configuration:
minimal-config
small-config
medium-config
large-config
full-config
debug_and_release build_all release
debug
shared
zlib
icu
angle
png
freetype
harfbuzz
build_all
accessibility
opengl
opengles2
egl
ssl
openssl
dbus
audio-backend
directwrite
native-gestures
qpa
concurrent

QMAKESPEC...................win32-msvc2013 (detected)
Architecture................i386, features: sse sse2
Host Architecture...........i386, features: sse sse2
Maketool....................nmake
Debug build.................yes (combined)
Default build...............debug
Force debug info............no
Force optimized tools.......
C++ language standard.......auto
Link Time Code Generation...no
Accessibility support.......yes
RTTI support................yes
SSE2 support................yes
SSE3 support................yes
SSSE3 support...............yes
SSE4.1 support..............yes
SSE4.2 support..............yes
AVX support.................yes
AVX2 support................yes
NEON support................no
OpenGL support..............yes
Large File support..........yes
NIS support.................no
Iconv support...............no
Evdev support...............no
Mtdev support...............no
Inotify support.............no
eventfd(7) support..........no
Glib support................no
CUPS support................no
OpenVG support..............no
SSL support.................yes
OpenSSL support.............yes
libproxy support............no
Qt D-Bus support............runtime
Qt Widgets module support...yes
Qt GUI module support.......yes
QML debugging...............yes
DirectWrite support.........yes
Use system proxies..........no

QPA Backends:
GDI.....................yes
Direct2D................no

Third Party Libraries:
ZLIB support............qt
GIF support.............plugin
JPEG support............plugin
PNG support.............yes
FreeType support........yes
Fontconfig support......no
HarfBuzz support........qt
PCRE support............qt
ICU support.............yes
ANGLE...................yes
Dynamic OpenGL..........no

Styles:
Windows.................yes
Windows XP..............yes
Windows Vista...........yes
Fusion..................yes
Windows CE..............no
Windows Mobile..........no

Sql Drivers:
ODBC....................yes
MySQL...................no
OCI.....................no
PostgreSQL..............no
TDS.....................no
DB2.....................no
SQLite..................yes (qt)
SQLite2.................no
InterBase...............no

Sources are in..............D:\x86\qt-everywhere-opensource-src-5.6.0\qtbase
Build is done in............D:\x86\qt-everywhere-opensource-src-5.6.0\qtbase
Install prefix..............D:\QtLibrary(VS)-x86
Headers installed to........D:\QtLibrary(VS)-x86\include
Libraries installed to......D:\QtLibrary(VS)-x86\lib
Arch-dep. data to...........D:\QtLibrary(VS)-x86
Plugins installed to........D:\QtLibrary(VS)-x86\plugins
Library execs installed to..D:\QtLibrary(VS)-x86\bin
QML1 imports installed to...D:\QtLibrary(VS)-x86\imports
QML2 imports installed to...D:\QtLibrary(VS)-x86\qml
Binaries installed to.......D:\QtLibrary(VS)-x86\bin
Arch-indep. data to.........D:\QtLibrary(VS)-x86
Docs installed to...........D:\QtLibrary(VS)-x86\doc
Translations installed to...D:\QtLibrary(VS)-x86\translations
Examples installed to.......D:\QtLibrary(VS)-x86\examples
Tests installed to..........D:\QtLibrary(VS)-x86\tests
Include paths...............D:\openssl_x86\include D:\icu_x86\include
Additional libraries........-LD:\openssl_x86\lib -LD:\openssl_x86\bin -LD:\icu_x86\lib -LD:\icu_x86\bin
------------------------------------------------------------------------------------------------------------------------------------------
x86-64:

Environment:
INCLUDE=
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\ATLMFC\INCLUDE
C:\Program Files (x86)\Windows Kits\8.1\include\shared
C:\Program Files (x86)\Windows Kits\8.1\include\um
C:\Program Files (x86)\Windows Kits\8.1\include\winrt

LIB=
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\LIB\amd64
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\ATLMFC\LIB\amd64
C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x64

PATH=
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow
C:\Program Files (x86)\Microsoft SDKs\F#\3.1\Framework\v4.0\
C:\Program Files (x86)\MSBuild\12.0\bin
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\x86_amd64
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools
C:\Windows\Microsoft.NET\Framework\v4.0.30319
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\VCPackages
C:\Program Files (x86)\HTML Help Workshop
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Team Tools\Performance Tools
C:\Program Files (x86)\Windows Kits\8.1\bin\x86
C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\x64\
C:\Python27\
C:\Python27\Scripts
C:\Perl64\site\bin
C:\Perl64\bin
C:\Windows\system32
C:\Windows
C:\Windows\System32\Wbem
C:\Windows\System32\WindowsPowerShell\v1.0\
C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\
C:\Program Files\Microsoft SQL Server\110\Tools\Binn\
C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.0\
C:\Program Files\Microsoft SQL Server\120\Tools\Binn\
C:\Program Files\Git\cmd
C:\Ruby23-x64\bin
C:\putty
C:\Program Files\7-Zip
D:\icu_x86-64\bin
D:\icu_x86-64\lib
D:\openssl_x86-64\bin
D:\openssl_x86-64\lib
D:\x86-64\qt-everywhere-opensource-src-5.6.0\gnuwin32\bin
Configuration:
pcre
debug
msvc_mp
Qt Configuration:
minimal-config
small-config
medium-config
large-config
full-config
debug_and_release build_all release
debug
shared
zlib
icu
angle
png
freetype
harfbuzz
build_all
accessibility
opengl
opengles2
egl
ssl
openssl
dbus
audio-backend
directwrite
native-gestures
qpa
concurrent

QMAKESPEC...................win32-msvc2013 (detected)
Architecture................x86_64, features: sse sse2
Host Architecture...........x86_64, features: sse sse2
Maketool....................nmake
Debug build.................yes (combined)
Default build...............debug
Force debug info............no
Force optimized tools.......
C++ language standard.......auto
Link Time Code Generation...no
Accessibility support.......yes
RTTI support................yes
SSE2 support................yes
SSE3 support................yes
SSSE3 support...............yes
SSE4.1 support..............yes
SSE4.2 support..............yes
AVX support.................yes
AVX2 support................yes
NEON support................no
OpenGL support..............yes
Large File support..........yes
NIS support.................no
Iconv support...............no
Evdev support...............no
Mtdev support...............no
Inotify support.............no
eventfd(7) support..........no
Glib support................no
CUPS support................no
OpenVG support..............no
SSL support.................yes
OpenSSL support.............yes
libproxy support............no
Qt D-Bus support............runtime
Qt Widgets module support...yes
Qt GUI module support.......yes
QML debugging...............yes
DirectWrite support.........yes
Use system proxies..........no

QPA Backends:
GDI.....................yes
Direct2D................no

Third Party Libraries:
ZLIB support............qt
GIF support.............plugin
JPEG support............plugin
PNG support.............yes
FreeType support........yes
Fontconfig support......no
HarfBuzz support........qt
PCRE support............qt
ICU support.............yes
ANGLE...................yes
Dynamic OpenGL..........no

Styles:
Windows.................yes
Windows XP..............yes
Windows Vista...........yes
Fusion..................yes
Windows CE..............no
Windows Mobile..........no

Sql Drivers:
ODBC....................yes
MySQL...................no
OCI.....................no
PostgreSQL..............no
TDS.....................no
DB2.....................no
SQLite..................yes (qt)
SQLite2.................no
InterBase...............no

Sources are in..............D:\x86-64\qt-everywhere-opensource-src-5.6.0\qtbase
Build is done in............D:\x86-64\qt-everywhere-opensource-src-5.6.0\qtbase
Install prefix..............D:\QtLibrary(VS)-x86-64
Headers installed to........D:\QtLibrary(VS)-x86-64\include
Libraries installed to......D:\QtLibrary(VS)-x86-64\lib
Arch-dep. data to...........D:\QtLibrary(VS)-x86-64
Plugins installed to........D:\QtLibrary(VS)-x86-64\plugins
Library execs installed to..D:\QtLibrary(VS)-x86-64\bin
QML1 imports installed to...D:\QtLibrary(VS)-x86-64\imports
QML2 imports installed to...D:\QtLibrary(VS)-x86-64\qml
Binaries installed to.......D:\QtLibrary(VS)-x86-64\bin
Arch-indep. data to.........D:\QtLibrary(VS)-x86-64
Docs installed to...........D:\QtLibrary(VS)-x86-64\doc
Translations installed to...D:\QtLibrary(VS)-x86-64\translations
Examples installed to.......D:\QtLibrary(VS)-x86-64\examples
Tests installed to..........D:\QtLibrary(VS)-x86-64\tests
Include paths...............D:\openssl_x86-64\include D:\icu_x86-64\include
Additional libraries........-LD:\openssl_x86-64\lib -LD:\openssl_x86-64\bin -LD:\icu_x86-64\lib -LD:\icu_x86-64\bin

Qt 5.6.0 动态编译(VS2013) 支持OpenSSL ICU (x86 x86-64)

ICU
x86:http://pan.baidu.com/s/1kVcqBxd
x86-64:http://pan.baidu.com/s/1qYb017e

OpenSSL
x86:http://pan.baidu.com/s/1i4883p7
x86-64:http://pan.baidu.com/s/1o7JnCUm

x86 Qt库,包含Debug、Release、开发文档,x86-64 Qt库,包含Release。
x86:http://pan.baidu.com/s/1nvvPu3Z
x86-64:http://pan.baidu.com/s/1nveoybJ

x86 Configure:

Environment:
INCLUDE=
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\ATLMFC\INCLUDE
C:\Program Files (x86)\Windows Kits\8.1\include\shared
C:\Program Files (x86)\Windows Kits\8.1\include\um
C:\Program Files (x86)\Windows Kits\8.1\include\winrt

LIB=
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\LIB
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\ATLMFC\LIB
C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86

PATH=
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow
C:\Program Files (x86)\Microsoft SDKs\F#\3.1\Framework\v4.0\
C:\Program Files (x86)\MSBuild\12.0\bin
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools
C:\Windows\Microsoft.NET\Framework\v4.0.30319
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\VCPackages
C:\Program Files (x86)\HTML Help Workshop
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Team Tools\Performance Tools
C:\Program Files (x86)\Windows Kits\8.1\bin\x86
C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\
C:\Perl64\site\bin
C:\Perl64\bin
C:\ProgramData\Oracle\Java\javapath
C:\WINDOWS\system32
C:\WINDOWS
C:\WINDOWS\System32\Wbem
C:\WINDOWS\System32\WindowsPowerShell\v1.0\
C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\
C:\Program Files\Microsoft SQL Server\110\Tools\Binn\
C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.0\
C:\Program Files\Microsoft SQL Server\120\Tools\Binn\
C:\Program Files\TortoiseSVN\bin
C:\Program Files (x86)\Skype\Phone\
C:\Ruby22-x64\bin
C:\Users\Binnan_Hao_XPS15\AppData\Local\Programs\Python\Python35\Scripts\
C:\Users\Binnan_Hao_XPS15\AppData\Local\Programs\Python\Python35\
C:\Program Files\7-Zip
E:\icu_x86\bin
E:\icu_x86\lib
E:\openssl_x86\bin
E:\openssl_x86\lib
E:\x86\qt-everywhere-opensource-src-5.6.0\gnuwin32\bin
Configuration:
pcre
debug
msvc_mp
Qt Configuration:
minimal-config
small-config
medium-config
large-config
full-config
debug_and_release build_all release
debug
shared
zlib
icu
dynamicgl
png
freetype
harfbuzz
build_all
accessibility
opengl
ssl
openssl
dbus
audio-backend
directwrite
native-gestures
qpa
concurrent

QMAKESPEC...................win32-msvc2013 (detected)
Target OS...................xp
Architecture................i386, features: sse sse2
Host Architecture...........i386, features: sse sse2
Maketool....................nmake
Debug build.................yes (combined)
Default build...............debug
Force debug info............no
Force optimized tools.......
C++ language standard.......auto
Link Time Code Generation...no
Accessibility support.......yes
RTTI support................yes
SSE2 support................yes
SSE3 support................yes
SSSE3 support...............yes
SSE4.1 support..............yes
SSE4.2 support..............yes
AVX support.................yes
AVX2 support................yes
NEON support................no
OpenGL support..............yes
Large File support..........yes
NIS support.................no
Iconv support...............no
Evdev support...............no
Mtdev support...............no
Inotify support.............no
eventfd(7) support..........no
Glib support................no
CUPS support................no
OpenVG support..............no
SSL support.................yes
OpenSSL support.............yes
libproxy support............no
Qt D-Bus support............runtime
Qt Widgets module support...yes
Qt GUI module support.......yes
QML debugging...............yes
DirectWrite support.........yes
Use system proxies..........no

QPA Backends:
GDI.....................yes
Direct2D................no

Third Party Libraries:
ZLIB support............qt
GIF support.............plugin
JPEG support............plugin
PNG support.............yes
FreeType support........yes
Fontconfig support......no
HarfBuzz support........qt
PCRE support............qt
ICU support.............yes
ANGLE...................no
Dynamic OpenGL..........yes

Styles:
Windows.................yes
Windows XP..............yes
Windows Vista...........yes
Fusion..................yes
Windows CE..............no
Windows Mobile..........no

Sql Drivers:
ODBC....................no
MySQL...................no
OCI.....................no
PostgreSQL..............no
TDS.....................no
DB2.....................no
SQLite..................plugin (qt)
SQLite2.................no
InterBase...............no

Sources are in..............E:\x86\qt-everywhere-opensource-src-5.6.0\qtbase
Build is done in............E:\x86\qt-everywhere-opensource-src-5.6.0\qtbase
Install prefix..............E:\QtLibrary(VS)-x86
Headers installed to........E:\QtLibrary(VS)-x86\include
Libraries installed to......E:\QtLibrary(VS)-x86\lib
Arch-dep. data to...........E:\QtLibrary(VS)-x86
Plugins installed to........E:\QtLibrary(VS)-x86\plugins
Library execs installed to..E:\QtLibrary(VS)-x86\bin
QML1 imports installed to...E:\QtLibrary(VS)-x86\imports
QML2 imports installed to...E:\QtLibrary(VS)-x86\qml
Binaries installed to.......E:\QtLibrary(VS)-x86\bin
Arch-indep. data to.........E:\QtLibrary(VS)-x86
Docs installed to...........E:\QtLibrary(VS)-x86\doc
Translations installed to...E:\QtLibrary(VS)-x86\translations
Examples installed to.......E:\QtLibrary(VS)-x86\examples
Tests installed to..........E:\QtLibrary(VS)-x86\tests
Include paths...............E:\openssl_x86\include E:\icu_x86\include
Additional libraries........-LE:\openssl_x86\lib -LE:\openssl_x86\bin -LE:\icu_x86\lib -LE:\icu_x86\bin

Info: creating super cache file E:\x86\qt-everywhere-opensource-src-5.6.0\.qmake.super
Qt is now configured for building. Just run nmake.
To reconfigure, run nmake confclean and configure.

x86-64 Configure:

Environment:
INCLUDE=
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\ATLMFC\INCLUDE
C:\Program Files (x86)\Windows Kits\8.1\include\shared
C:\Program Files (x86)\Windows Kits\8.1\include\um
C:\Program Files (x86)\Windows Kits\8.1\include\winrt

LIB=
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\LIB\amd64
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\ATLMFC\LIB\amd64
C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x64

PATH=
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow
C:\Program Files (x86)\Microsoft SDKs\F#\3.1\Framework\v4.0\
C:\Program Files (x86)\MSBuild\12.0\bin
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\x86_amd64
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools
C:\Windows\Microsoft.NET\Framework\v4.0.30319
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\VCPackages
C:\Program Files (x86)\HTML Help Workshop
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Team Tools\Performance Tools
C:\Program Files (x86)\Windows Kits\8.1\bin\x86
C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\x64\
C:\Perl64\site\bin
C:\Perl64\bin
C:\ProgramData\Oracle\Java\javapath
C:\WINDOWS\system32
C:\WINDOWS
C:\WINDOWS\System32\Wbem
C:\WINDOWS\System32\WindowsPowerShell\v1.0\
C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\
C:\Program Files\Microsoft SQL Server\110\Tools\Binn\
C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.0\
C:\Program Files\Microsoft SQL Server\120\Tools\Binn\
C:\Program Files\TortoiseSVN\bin
C:\Program Files (x86)\Skype\Phone\
C:\Ruby22-x64\bin
C:\Users\Binnan_Hao_XPS15\AppData\Local\Programs\Python\Python35\Scripts\
C:\Users\Binnan_Hao_XPS15\AppData\Local\Programs\Python\Python35\
C:\Program Files\7-Zip
E:\icu_x86-64\bin
E:\icu_x86-64\lib
E:\openssl_x86-64\bin
E:\openssl_x86-64\lib
E:\x86-64\qt-everywhere-opensource-src-5.6.0\gnuwin32\bin
Configuration:
pcre
release
msvc_mp
Qt Configuration:
minimal-config
small-config
medium-config
large-config
full-config
release
shared
zlib
icu
dynamicgl
png
freetype
harfbuzz
accessibility
opengl
ssl
openssl
dbus
audio-backend
directwrite
native-gestures
qpa
concurrent

QMAKESPEC...................win32-msvc2013 (detected)
Target OS...................xp
Architecture................x86_64, features: sse sse2
Host Architecture...........x86_64, features: sse sse2
Maketool....................nmake
Debug.......................no
Force debug info............no
C++ language standard.......auto
Link Time Code Generation...no
Accessibility support.......yes
RTTI support................yes
SSE2 support................yes
SSE3 support................yes
SSSE3 support...............yes
SSE4.1 support..............yes
SSE4.2 support..............yes
AVX support.................yes
AVX2 support................yes
NEON support................no
OpenGL support..............yes
Large File support..........yes
NIS support.................no
Iconv support...............no
Evdev support...............no
Mtdev support...............no
Inotify support.............no
eventfd(7) support..........no
Glib support................no
CUPS support................no
OpenVG support..............no
SSL support.................yes
OpenSSL support.............yes
libproxy support............no
Qt D-Bus support............runtime
Qt Widgets module support...yes
Qt GUI module support.......yes
QML debugging...............yes
DirectWrite support.........yes
Use system proxies..........no

QPA Backends:
GDI.....................yes
Direct2D................no

Third Party Libraries:
ZLIB support............qt
GIF support.............plugin
JPEG support............plugin
PNG support.............yes
FreeType support........yes
Fontconfig support......no
HarfBuzz support........qt
PCRE support............qt
ICU support.............yes
ANGLE...................no
Dynamic OpenGL..........yes

Styles:
Windows.................yes
Windows XP..............yes
Windows Vista...........yes
Fusion..................yes
Windows CE..............no
Windows Mobile..........no

Sql Drivers:
ODBC....................no
MySQL...................no
OCI.....................no
PostgreSQL..............no
TDS.....................no
DB2.....................no
SQLite..................plugin (qt)
SQLite2.................no
InterBase...............no

Sources are in..............E:\x86-64\qt-everywhere-opensource-src-5.6.0\qtbase
Build is done in............E:\x86-64\qt-everywhere-opensource-src-5.6.0\qtbase
Install prefix..............E:\QtLibrary(VS)-x86-64
Headers installed to........E:\QtLibrary(VS)-x86-64\include
Libraries installed to......E:\QtLibrary(VS)-x86-64\lib
Arch-dep. data to...........E:\QtLibrary(VS)-x86-64
Plugins installed to........E:\QtLibrary(VS)-x86-64\plugins
Library execs installed to..E:\QtLibrary(VS)-x86-64\bin
QML1 imports installed to...E:\QtLibrary(VS)-x86-64\imports
QML2 imports installed to...E:\QtLibrary(VS)-x86-64\qml
Binaries installed to.......E:\QtLibrary(VS)-x86-64\bin
Arch-indep. data to.........E:\QtLibrary(VS)-x86-64
Docs installed to...........E:\QtLibrary(VS)-x86-64\doc
Translations installed to...E:\QtLibrary(VS)-x86-64\translations
Examples installed to.......E:\QtLibrary(VS)-x86-64\examples
Tests installed to..........E:\QtLibrary(VS)-x86-64\tests
Include paths...............E:\openssl_x86-64\include E:\icu_x86-64\include
Additional libraries........-LE:\openssl_x86-64\lib -LE:\openssl_x86-64\bin -LE:\icu_x86-64\lib -LE:\icu_x86-64\bin

Info: creating super cache file E:\x86-64\qt-everywhere-opensource-src-5.6.0\.qmake.super
Qt is now configured for building. Just run nmake.
To reconfigure, run nmake confclean and configure.