http://www.kavenblog.com/?p=375

1、Qt的跨平台十分优秀,但是在Windows上是还是会有许多问题,其中之一就是动态链接库的问题,Qt程序的发布必须带一个体积不小的DLL库,这十分不方便。当然,如果是程序员之间会比较方便,如果别人的机子也安装了Qt,并且设置了环境变量,那么也可以不将公共的DLL附在发布的程序中。但是,这样显然还是不方便。

2、静态链接库很好的解决了这一个问题,下面就来详细叙述如何编译Qt5.4.0的静态库。

3、参考链接:http://blog.csdn.net/wwkaven/article/details/37668859

4、下载Qt源码:

下载地址:http://111.11.184.43/mirrors.ustc.edu.cn/qtproject/archive/qt/5.4/5.4.0/single/qt-everywhere-opensource-src-5.4.0.zip

5、安装Python

https://www.python.org/downloads/

https://www.python.org/ftp/python/3.4.3/python-3.4.3.msi

6、解压Qt源码:

7、进入这个文件夹:qt-everywhere-opensource-src-5.4.0\qtbase\mkspecs

8、进入这个文件夹:qt-everywhere-opensource-src-5.4.0\qtbase\mkspecs\win32-msvc2010,里面有两个文件:

9、打开qmake.conf,修改内容并保存,如下:

原始内容如下(注意红色部分):

#

# qmake configuration for win32-msvc2010

#

# Written for Microsoft Visual C++ 2010

#

MAKEFILE_GENERATOR      = MSBUILD

QMAKE_PLATFORM          = win32

CONFIG                 += incremental flat precompile_header autogen_precompile_source debug_and_release debug_and_release_target embed_manifest_dll embed_manifest_exe

DEFINES                += UNICODE WIN32

MSVC_VER                = 10.0

QMAKE_COMPILER_DEFINES += _MSC_VER=1600 _WIN32

contains(QMAKE_TARGET.arch, x86_64) {

DEFINES += WIN64

QMAKE_COMPILER_DEFINES += _WIN64

}

QMAKE_COMPILER          = msvc

QMAKE_CC                = cl

QMAKE_LEX               = flex

QMAKE_LEXFLAGS          =

QMAKE_YACC              = byacc

QMAKE_YACCFLAGS         = -d

QMAKE_CFLAGS            = -nologo -Zm200 -Zc:wchar_t

QMAKE_CFLAGS_WARN_ON    = -W3

QMAKE_CFLAGS_WARN_OFF   = -W0

QMAKE_CFLAGS_RELEASE    = -O2 -MD

QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MD -Zi

QMAKE_CFLAGS_DEBUG      = -Zi -MDd

QMAKE_CFLAGS_YACC       =

QMAKE_CFLAGS_LTCG       = -GL

QMAKE_CFLAGS_MP         = -MP

QMAKE_CFLAGS_SSE2       = -arch:SSE2

QMAKE_CFLAGS_SSE3       = -arch:SSE2

QMAKE_CFLAGS_SSSE3      = -arch:SSE2

QMAKE_CFLAGS_SSE4_1     = -arch:SSE2

QMAKE_CFLAGS_SSE4_2     = -arch:SSE2

QMAKE_CFLAGS_AVX        = -arch:AVX

QMAKE_CFLAGS_AVX2       = -arch:AVX

QMAKE_CXX               = $$QMAKE_CC

QMAKE_CXXFLAGS          = $$QMAKE_CFLAGS

QMAKE_CXXFLAGS_WARN_ON  = $$QMAKE_CFLAGS_WARN_ON -w34100 -w34189

QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF

QMAKE_CXXFLAGS_RELEASE  = $$QMAKE_CFLAGS_RELEASE

QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO

QMAKE_CXXFLAGS_DEBUG    = $$QMAKE_CFLAGS_DEBUG

QMAKE_CXXFLAGS_YACC     = $$QMAKE_CFLAGS_YACC

QMAKE_CXXFLAGS_LTCG     = $$QMAKE_CFLAGS_LTCG

QMAKE_CXXFLAGS_MP       = $$QMAKE_CFLAGS_MP

QMAKE_CXXFLAGS_STL_ON   = -EHsc

QMAKE_CXXFLAGS_STL_OFF  =

QMAKE_CXXFLAGS_RTTI_ON  = -GR

QMAKE_CXXFLAGS_RTTI_OFF =

QMAKE_CXXFLAGS_EXCEPTIONS_ON = -EHsc

QMAKE_CXXFLAGS_EXCEPTIONS_OFF =

QMAKE_INCDIR            =

QMAKE_RUN_CC            = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$obj $src

QMAKE_RUN_CC_IMP        = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$@ $<

QMAKE_RUN_CC_IMP_BATCH  = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$@ @<<

QMAKE_RUN_CXX           = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$obj $src

QMAKE_RUN_CXX_IMP       = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ $<

QMAKE_RUN_CXX_IMP_BATCH = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ @<<

QMAKE_LINK              = link

QMAKE_LFLAGS            = /NOLOGO /DYNAMICBASE /NXCOMPAT

QMAKE_LFLAGS_RELEASE    = /INCREMENTAL:NO

QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO = /DEBUG /OPT:REF /INCREMENTAL:NO

QMAKE_LFLAGS_DEBUG      = /DEBUG

QMAKE_LFLAGS_CONSOLE    = /SUBSYSTEM:CONSOLE

QMAKE_LFLAGS_WINDOWS    = /SUBSYSTEM:WINDOWS

QMAKE_LFLAGS_EXE        = \"/MANIFESTDEPENDENCY:type=\’win32\’ name=\’Microsoft.Windows.Common-Controls\’ version=\’6.0.0.0\’ publicKeyToken=\’6595b64144ccf1df\’ language=\’*\’ processorArchitecture=\’*\’\"

QMAKE_LFLAGS_DLL        = /DLL

QMAKE_LFLAGS_LTCG       = /LTCG

QMAKE_EXTENSION_STATICLIB = lib

QMAKE_LIBS_CORE         = kernel32.lib user32.lib shell32.lib uuid.lib ole32.lib advapi32.lib ws2_32.lib

QMAKE_LIBS_GUI          = gdi32.lib comdlg32.lib oleaut32.lib imm32.lib winmm.lib ws2_32.lib ole32.lib user32.lib advapi32.lib

QMAKE_LIBS_NETWORK      = ws2_32.lib

QMAKE_LIBS_OPENGL       = glu32.lib opengl32.lib gdi32.lib user32.lib

QMAKE_LIBS_OPENGL_ES2   = libEGL.lib libGLESv2.lib gdi32.lib user32.lib

QMAKE_LIBS_OPENGL_ES2_DEBUG = libEGLd.lib libGLESv2d.lib gdi32.lib user32.lib

QMAKE_LIBS_COMPAT       = advapi32.lib shell32.lib comdlg32.lib user32.lib gdi32.lib ws2_32.lib

QMAKE_LIBS_QT_ENTRY     = -lqtmain

QMAKE_IDL               = midl

QMAKE_LIB               = lib /NOLOGO

QMAKE_RC                = rc

include(../common/shell-win32.conf)

VCPROJ_EXTENSION        = .vcxproj

VCSOLUTION_EXTENSION    = .sln

VCPROJ_KEYWORD          = Qt4VSv1.0

load(qt_config)

修改红色部分,将MD(动态)改为MT(静态)

QMAKE_CFLAGS_RELEASE    = -O2 -MD

QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MD -Zi

QMAKE_CFLAGS_DEBUG      = -Zi -MDd

改为

QMAKE_CFLAGS_RELEASE    = -O2 -MT

QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MT -Zi

QMAKE_CFLAGS_DEBUG      = -Zi -MTd

保存文件

10、以管理员身份打开VS2010的命令提示工具:

输入python,查看Python的状态:

如果是这样,需要设动设置Python的环境变量:

set PATH=%PATH%;C:\Python34

按下“Ctrl+z”,再回车,退出Python

CD至Qt源码的解压目录:

11、关键步骤,Configure

输入:

configure -mp -confirm-license -opensource -platform win32-msvc2010 -debug-and-release -static -prefix "D:\QT_Static\qt-static-5.4.0" -qt-sql-sqlite -qt-sql-odbc -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -qt-freetype -no-qml-debug -no-angle -nomake tests -nomake examples -skip qtwebkit

回车:

一会之后:

12、执行nmake

回车

接下去就是漫长的编译过程了, 等待中。。。。。。

编译完成

编译完后的文件夹大小:

13、执行nmake install

完成

安装目录:

14、配置静态库

发现有一个警告,暂时忽略:

15、创建测试项目

选择静态编译器:

以下是编译输出:

13:44:17: 为项目StaticTest执行步骤 …

13:44:17: 正在启动 "D:\QT_Static\qt-static-5.4.0\bin\qmake.exe" D:\Documents\QT\StaticTest\StaticTest.pro -r -spec win32-msvc2010

13:44:18: 进程"D:\QT_Static\qt-static-5.4.0\bin\qmake.exe"正常退出。

13:44:18: 正在启动 "C:\Qt\Qt5.4.0\Tools\QtCreator\bin\jom.exe"

C:\Qt\Qt5.4.0\Tools\QtCreator\bin\jom.exe -f Makefile.Debug

D:\QT_Static\qt-static-5.4.0\bin\uic.exe ..\StaticTest\dialog.ui -o ui_dialog.h

cl -c -nologo -Zm200 -Zc:wchar_t -Zi -MTd -GR -W3 -w34100 -w34189 -EHsc /Fddebug\StaticTest.pdb -DUNICODE -DWIN32 -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I"..\..\..\QT_Static\qt-static-5.4.0\include" -I"..\..\..\QT_Static\qt-static-5.4.0\include\QtWidgets" -I"..\..\..\QT_Static\qt-static-5.4.0\include\QtGui" -I"..\..\..\QT_Static\qt-static-5.4.0\include\QtCore" -I"debug" -I"." -I"." -I"..\..\..\QT_Static\qt-static-5.4.0\mkspecs\win32-msvc2010" -Fodebug\ @C:\Users\Kaven\AppData\Local\Temp\main.obj.9692.0.jom

main.cpp

cl -c -nologo -Zm200 -Zc:wchar_t -Zi -MTd -GR -W3 -w34100 -w34189 -EHsc /Fddebug\StaticTest.pdb -DUNICODE -DWIN32 -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I"..\..\..\QT_Static\qt-static-5.4.0\include" -I"..\..\..\QT_Static\qt-static-5.4.0\include\QtWidgets" -I"..\..\..\QT_Static\qt-static-5.4.0\include\QtGui" -I"..\..\..\QT_Static\qt-static-5.4.0\include\QtCore" -I"debug" -I"." -I"." -I"..\..\..\QT_Static\qt-static-5.4.0\mkspecs\win32-msvc2010" -Fodebug\ @C:\Users\Kaven\AppData\Local\Temp\statictest_plugin_import.obj.9692.15.jom

statictest_plugin_import.cpp

D:\QT_Static\qt-static-5.4.0\bin\moc.exe -DUNICODE -DWIN32 -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -D_MSC_VER=1600 -D_WIN32 -ID:/QT_Static/qt-static-5.4.0/mkspecs/win32-msvc2010 -ID:/Documents/QT/StaticTest -ID:/QT_Static/qt-static-5.4.0/include -ID:/QT_Static/qt-static-5.4.0/include/QtWidgets -ID:/QT_Static/qt-static-5.4.0/include/QtGui -ID:/QT_Static/qt-static-5.4.0/include/QtCore -I. ..\StaticTest\dialog.h -o debug\moc_dialog.cpp

cl -c -nologo -Zm200 -Zc:wchar_t -Zi -MTd -GR -W3 -w34100 -w34189 -EHsc /Fddebug\StaticTest.pdb -DUNICODE -DWIN32 -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I"..\..\..\QT_Static\qt-static-5.4.0\include" -I"..\..\..\QT_Static\qt-static-5.4.0\include\QtWidgets" -I"..\..\..\QT_Static\qt-static-5.4.0\include\QtGui" -I"..\..\..\QT_Static\qt-static-5.4.0\include\QtCore" -I"debug" -I"." -I"." -I"..\..\..\QT_Static\qt-static-5.4.0\mkspecs\win32-msvc2010" -Fodebug\ @C:\Users\Kaven\AppData\Local\Temp\dialog.obj.9692.343.jom

dialog.cpp

cl -c -nologo -Zm200 -Zc:wchar_t -Zi -MTd -GR -W3 -w34100 -w34189 -EHsc /Fddebug\StaticTest.pdb -DUNICODE -DWIN32 -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I"..\..\..\QT_Static\qt-static-5.4.0\include" -I"..\..\..\QT_Static\qt-static-5.4.0\include\QtWidgets" -I"..\..\..\QT_Static\qt-static-5.4.0\include\QtGui" -I"..\..\..\QT_Static\qt-static-5.4.0\include\QtCore" -I"debug" -I"." -I"." -I"..\..\..\QT_Static\qt-static-5.4.0\mkspecs\win32-msvc2010" -Fodebug\ @C:\Users\Kaven\AppData\Local\Temp\moc_dialog.obj.9692.609.jom

moc_dialog.cpp

echo 1 /* CREATEPROCESS_MANIFEST_RESOURCE_ID */ 24 /* RT_MANIFEST */ "debug\\StaticTest.exe.embed.manifest">debug\StaticTest.exe_manifest.rc

if not exist debug\StaticTest.exe if exist debug\StaticTest.exe.embed.manifest del debug\StaticTest.exe.embed.manifest

if exist debug\StaticTest.exe.embed.manifest copy /Y debug\StaticTest.exe.embed.manifest debug\StaticTest.exe_manifest.bak

link /NOLOGO /DYNAMICBASE /NXCOMPAT /DEBUG /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type=’win32′ name=’Microsoft.Windows.Common-Controls’ version=’6.0.0.0′ publicKeyToken=’6595b64144ccf1df’ language=’*’ processorArchitecture=’*’" /MANIFEST /MANIFESTFILE:debug\StaticTest.exe.embed.manifest /OUT:debug\StaticTest.exe @C:\Users\Kaven\AppData\Local\Temp\StaticTest.exe.9692.2297.jom

正在创建库 debug\StaticTest.lib 和对象 debug\StaticTest.exp

if exist debug\StaticTest.exe_manifest.bak fc /b debug\StaticTest.exe.embed.manifest debug\StaticTest.exe_manifest.bak >NUL || del debug\StaticTest.exe_manifest.bak

if not exist debug\StaticTest.exe_manifest.bak rc.exe /fodebug\StaticTest.exe_manifest.res debug\StaticTest.exe_manifest.rc

Microsoft (R) Windows (R) Resource Compiler Version 6.1.7600.16385

Copyright (C) Microsoft Corporation. All rights reserved.

if not exist debug\StaticTest.exe_manifest.bak link /NOLOGO /DYNAMICBASE /NXCOMPAT /DEBUG /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type=’win32′ name=’Microsoft.Windows.Common-Controls’ version=’6.0.0.0′ publicKeyToken=’6595b64144ccf1df’ language=’*’ processorArchitecture=’*’" /MANIFEST /MANIFESTFILE:debug\StaticTest.exe.embed.manifest /OUT:debug\StaticTest.exe @C:\Users\Kaven\AppData\Local\Temp\StaticTest.exe.9692.2312.jom

正在创建库 debug\StaticTest.lib 和对象 debug\StaticTest.exp

if exist debug\StaticTest.exe_manifest.bak del debug\StaticTest.exe_manifest.bak

13:44:42: 进程"C:\Qt\Qt5.4.0\Tools\QtCreator\bin\jom.exe"正常退出。

13:44:42: Elapsed time: 00:26.

运行:

看一下生成的程序信息:

16、用VS打开项目

VS编译项目:

编译输出如下:

1>—— 已启动生成: 项目: StaticTest, 配置: Debug Win32 ——

1>生成启动时间为 2015/3/13 13:53:15。

1>PrepareForBuild:

1>  正在创建目录“debug\”。

1>InitializeBuildStatus:

1>  正在创建“Win32\Debug\StaticTest.unsuccessfulbuild”,因为已指定“AlwaysCreate”。

1>CustomBuild:

1>  Moc’ing dialog.h…

1>  Uic’ing dialog.ui…

1>ClCompile:

1>  dialog.cpp

1>  moc_dialog.cpp

1>  main.cpp

1>  正在生成代码…

1>Link:

1>  StaticTest.vcxproj -> D:\Documents\QT\StaticTest\debug\StaticTest.exe

1>FinalizeBuildStatus:

1>  正在删除文件“Win32\Debug\StaticTest.unsuccessfulbuild”。

1>  正在对“Win32\Debug\StaticTest.lastbuildstate”执行 Touch 任务。

1>

1>生成成功。

1>

1>已用时间 00:00:05.15

========== 生成: 成功 1 个,失败 0 个,最新 0 个,跳过 0 个 ==========

注意:此时用VS生成的项目还是用的动态库,因为未将静态库添加到VS中。

同上方法,将编译好的静态库也添加到VS设置中的Qt版本中:

然后,右键项目,Qt Project Settings

编译:

1>—— 已启动生成: 项目: StaticTest, 配置: Debug Win32 ——

1>生成启动时间为 2015/3/13 15:11:27。

1>PrepareForBuild:

1>  正在创建目录“debug\”。

1>InitializeBuildStatus:

1>  正在创建“Win32\Debug\StaticTest.unsuccessfulbuild”,因为已指定“AlwaysCreate”。

1>CustomBuild:

1>  Moc’ing dialog.h…

1>  Uic’ing dialog.ui…

1>ClCompile:

1>  dialog.cpp

1>  moc_dialog.cpp

1>  main.cpp

1>  statictest_plugin_import.cpp

1>  正在生成代码…

1>Link:

1>     正在创建库 debug\\StaticTest.lib 和对象 debug\\StaticTest.exp

1>  StaticTest.vcxproj -> D:\Documents\QT\StaticTest\debug\StaticTest.exe

1>FinalizeBuildStatus:

1>  正在删除文件“Win32\Debug\StaticTest.unsuccessfulbuild”。

1>  正在对“Win32\Debug\StaticTest.lastbuildstate”执行 Touch 任务。

1>

1>生成成功。

1>

1>已用时间 00:00:14.37

========== 生成: 成功 1 个,失败 0 个,最新 0 个,跳过 0 个 ==========

OK,本篇结束。

VS2010编译Qt5.4.0静态库的更多相关文章

  1. linux下编译qt5.6.0静态库——configure配置

    linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberr ...

  2. linux下编译qt5.6.0静态库——configure配置(超详细,有每一个模块的说明)(乌合之众)

    linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberr ...

  3. linux下编译qt5.6.0静态库(使用./configure --help来看看都有哪些参数。超详细,有每一个模块的说明。如果改变了安装的目录,需要到安装目录下的bin目录下创建文件qt.conf)(乌合之众)good

    linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberr ...

  4. VS2013编译Qt5.6.0静态库

    获取qt5.6.0源码包 直接去www.qt.io下载就好了,这里就不详细说了. 这里是我已经编译好的** 链接:http://pan.baidu.com/s/1pLb6wVT 密码: ak7y ** ...

  5. VS2013编译Qt5.6.0静态库(乌合之众)

    获取qt5.6.0源码包 直接去www.qt.io下载就好了,这里就不详细说了. 这里是我已经编译好的** 链接:http://pan.baidu.com/s/1pLb6wVT 密码: ak7y ** ...

  6. VS2013编译Qt5.6.0静态库,并提供了百度云下载(乌合之众)good

    获取qt5.6.0源码包 直接去www.qt.io下载就好了,这里就不详细说了. 这里是我已经编译好的** 链接:http://pan.baidu.com/s/1pLb6wVT 密码: ak7y ** ...

  7. VS2015编译Qt5.7.0生成支持XP的静态库(很不错)

    一.编译工具 1.VS2015 编译Qt5.7.0的所需VS版本:Visual Studio 2013 (Update1)或Visual Studio 2015 (Update2).因为Update补 ...

  8. 静态编译 Qt5.7.0 (含 openssl 支持)

    关于Qt静态便宜的环境等,请先参见 Win10 + VS2015 下编译 Qt5.6.0 . 首先编译 openssl .我这里用的版本是 openssl 1.0.2j (新的1.1版本的便宜稍有不同 ...

  9. Win10 + VS2015 下编译 Qt5.6.0

    近期由于另外一个项目需要用 vs2015 ,于是把 Qt 也升级到了 5.6.0 .由于项目需要兼容 Windows xp ,所以需要自己编译 Qt .这里大致整理一下编译的过程. 安装 Active ...

随机推荐

  1. robotframework笔记11

    测试用例的语法 基本语法 测试用例构造测试用例表中可用 关键词. 关键字可以进口 测试库 或 资源 文件 或创建的 关键字表 的测试用例文件 本身. 测试用例表中第一列包含测试用例的名称. 一个 测试 ...

  2. javascript常用函数(1):jquery操作select 基本操作

    $(this).children('option:selected').val();//这就是selected的值 $("#charCity").empty();//内容清空: j ...

  3. postgresql 触发器

    一.创建事件触发器 1.ddl_command_start - 一个DDL开始执行前被触发: 2.ddl_command_end - 一个DLL 执行完成后被触发: 3.sql_drop -- 删除一 ...

  4. ARM 汇编的一些规范

    A.5.1  文件格式        ARM 源程序文件(即源文件)为文件格式,可以使用任一文本编辑器编写程序代码.         在一个项目中,至少要有一个汇编源文件或C 程序文件,可以有多个汇编 ...

  5. Testin

    http://www.testin.cn/ http://news.ccidnet.com/art/66/20150416/5815927_1.html 百度百科上面的   Testin是全球最大的移 ...

  6. 使用window.navigator.userAgent属性判断浏览器类型及版本

    使用window.navigator.userAgent属性判断浏览器类型及版本 2011-12-11 22:03:11 window.navigator.userAgent属性包含了浏览器类型.版本 ...

  7. BZOJ3993 [SDOI2015]星际战争

    二分答案...然后最大流验证是否可行... 没了,好水啊QAQ /************************************************************** Prob ...

  8. CSS从今以后不用发愁

    Bootstrap 简洁.直观.强悍的前端开发框架,让web开发更迅速.简单. Bootstrap3中文文档 Bootstrap2中文文档 http://www.bootcss.com/

  9. 在Android应用中使用OpenGL

    Android为OpenGL  ES支持提供了GLSurfaceView组件,这个组件用于显示3D图形.GLSurfaceView本身并不提供绘制3D图形的功能,而是由GLSurfaceView.Re ...

  10. IBatis.net 输出SQL语句(七)

    一.IBatis.net输出SQL语句到控制台 输出IBatis.net生成的SQL语句到控制台,能够方便调试. 如果要想输出IBatis.net的SQL语句到控制台,那么只需要做如下配置即可: &l ...