QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 13942|回复: 3
打印 上一主题 下一主题

[其他资源] matlab生成exe文件(总结)

[复制链接]
字体大小: 正常 放大
我能 实名认证    中国数模人才认证   

24

主题

8

听众

2288

积分

升级  9.6%

  • TA的每日心情
    慵懒
    2023-4-27 19:48
  • 签到天数: 321 天

    [LV.8]以坛为家I

    社区QQ达人

    群组中国矿业大学数模培训

    群组数学建模培训课堂2

    群组2011年第一期数学建模

    群组学术交流B

    跳转到指定楼层
    1#
    发表于 2012-11-2 13:08 |只看该作者 |正序浏览
    |招呼Ta 关注Ta
    matlab功能相当的强大,写好了m文件但是其他很多电脑没有安装matalb,不能运行,所以我们想找到生成exe的可执行文件,我么就想到了和c语言c++进行混合编程,在windows下生成exe文件,matlab和vs等的文章很少大都是那几个 ,我自己在网上找了些东西总结了下:
    & H. |8 e- q5 j* v& i
    . Q' q0 N. Q" q$ Y8 a$ Q
    1.Matlab环境设置
    要建立独立运行的C应用程序,系统中需要安装MatlabMatlab编译器、C/C++编译器以及Matlab C/C++数学库函数和图形库函数。  Q) Y! b. ?5 s- A
    Matlab编译器使用mbuild命令可以直接将C/C++源代码编译为独立运行程序,在这些源代码中可以使用Matlab提供的接口来调用Matlab数学库函数。
    , ^# Y" G( P! l8 t
    虽然生成的可执行程序可以脱离Matlab环境运行,但是它需要Matlab C/C++数学库文件或者图形库文件的支持才能运行。但如果C/C++源代码完全是按传统C/C++源代码语法规则编写,没有包含Matlab数学库和图形库的调用,则不仅可以独立与Matlab环境,也不需要那两个库函数的支持。
    Matlab Command Window 下输入命令
    mbuild – setup
    操作过程如下图:
                                  
    然后输入命令
    mex – setup
    以类似的方法配置编译器。Matlab 的配置完成。
    2.VS环境设置
    1)设置Include Library 目录
    项目右键->属性->VC++目录->包含目录:添加
    <MATLAB>\R2010b\extern\include\win64
    <MATLAB>\R2010b\extern\include\
    项目右键->属性->VC++目录->库目录:添加
    <MATLAB>\R2010b\extern\lib\win32\microsoft
    <MATLAB>\R2010b\extern\lib\win64\microsoft
    截图(部分):
    2)设置工程目录
    项目右键->属性->C/C++->常规->附件包含目录:添加
    <MATLAB>\R2010b\extern\include\win64
    <MATLAB>\R2010b\extern\include\
    项目右键->属性->链接器->常规:添加
    <MATLAB>\R2010b\extern\lib\win32\microsoft
    <MATLAB>\R2010b\extern\lib\win64\microsoft
    项目右键->属性->链接器->输入->附件依赖性:添加
    libeng.lib6 m; I5 Z) M/ I/ C8 P. i' D
    libmat.lib
    + `+ ^( b6 _1 Qlibmex.lib, R$ [' U" n. f. E7 t( Q9 q
    libmx.lib
      
    注:1.lib文件包含在<MATLAB>\R2010b\extern\lib\win64\microsoft,可根据需要增减
    2.附件依赖性在VS2010前以空格隔开,在VS2010后使用;隔开。
    截图:
    项目右键->属性->链接器->高级->目标计算机:更改(只针对64WINDOWS
    MachineX86 -> MachineX64
    注:分析原因为MATLAB根据计算机平台选择了X64编译环境,如此处不修改会出现 错误3
    3)配置管理器设置(只针对64WINDOWS
    生成->配置管理器->平台:更改
    Win32->X64
    注:分析原因为配合链接器中目标计算机的修改,如此处不修改会出现 错误4
    截图:
    3.系统(Windows)环境设置
    我的电脑->属性->高级系统设置->高级->环境变量->Path,添加:
    <MATLAB>\R2010b\bin;<MATLAB>\R2010b\extern\lib\win64\microsoft;<MATLAB>\bin\win64
    注:1.Windows7的情况下,用户变量系统
    变量都需 添加,如不添加,运行时会出现 错误5
    2.哈哈,别忘记重启哈,重启后生效
    OK!配置就此结束,现在就开始engOpen吧!!对了,别忘记添加#include "engine.h"

    : v2 _# `1 }% U( D3 e) _* X  7 @9 c) m2 y- k) l' T) n
    1.设置编译器:, e" r3 n" Y8 C' M
    在确定安装好Matlab Compiler后,还需要对Compiler进行适当的配置,方法是在Matlab命令窗口输入:
    & {) S( o' b- E' E4 `6 ZMbuild –setup, 按提示选择matlab自带编译器LCC。; V1 n. X4 p7 H+ D7 x" V& c
    6 S, ^6 v7 h7 |" J
    2.将脚本编译为可执行文件:
    " V8 x; @5 D5 Y- z如项目文件包含:gui.m, gui.gif, fun1.m。+ t" z" b1 y9 v* e, J5 p
    - E& N, M1 I: }; ^
    在此路径下命令行输入:mcc –m gui.m,生 成:mccExcludedFiles.log,ReadMe.txt,gui.ctf,gui.prj,gui_main.c,gui_mcc_component_data.c,gui.exe。其中:gui.ctf,gui.exe为脱离matlab环境运行必需的文件。1 D) ?6 e+ M* u% R/ e7 f* h* q, a

    5 t$ B- c( p/ Q- U- s/ W3.在未安装matlab的机器上运行可执行程序。
    " q# a- |" w- x; g1 l7 u, r0 B. `将R22007b\toolbox\compiler\deploy\win32中的MCRinstaller.exe安装到该计算机上,将生成可执行程序脱离matlab运行所需的函数库。
    + f' h( b6 [8 O6 K+ f3 ?! Q6 g7 ^将2中生成的gui.ctf,gui.exe拷贝到该计算机同一路径。运行gui.exe将生成gui_mcr文件夹,包含程序运行所需的库。至此完成。5 T2 f( ?: D, n7 M
    / {6 F6 a" n& @0 l' k1 }& ~
    4.去除独立可执行程序运行时的“DOS黑窗口”。% x( `9 v; r: U) p  J$ M7 E5 `
    以上生成的exe程序运行时首先弹出一个DOS界面窗口,如果不需要其输出数据和错误信息,可将其去除。
    9 \7 d2 M, ?- U3 h% I
    1 @( l8 W+ {  ?, \matlba命令行输入:
    ; y, @& t* a, Q( B, Q$ l2 o( D# n( G+ A2 s
    cd(prefdir)5 Q$ X2 Q2 ~& Q( `; q7 E
    edit compopts.bat% d- p  d5 d! w, d# p* Y, a
    * c1 @4 p" N8 l2 f
    此时compopts.bat打开,在文件最后添加:
    ( ^4 I0 z9 ?# q5 j, ^4 Z! t$ [
    8 a$ ~+ o, L% a% r* k2 [' ]set LINKFLAGS=%LINKFLAGS% -subsystem windows
    9 S9 E! i! ~' k/ I$ s! l9 B6 f" H/ E, i" W. \
    如果程序比较复杂,易出现异常,则不建议去除这个dos窗口以便调试。
    + m: q% R$ r+ L( D" u
    , o: Q* ]9 _+ ^# `4 s另外,这个办法是适用于你用的编译器为LCC,如果是其他的,那么所加语句有所不同. B  Z" y2 B' Y
    * L* T4 n7 L( _( j0 k9 x6 ^5 Y
    Microsoft Visual C/C++:
    $ v) G1 W* K7 i& F8 O" v/ o/ v# Y( z0 `( r# @; T( Q9 X9 m
    set LINKFLAGS=%LINKFLAGS% /SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup  ?" X) J( [4 R& I; Y
    $ o: C, B9 \( T/ j* l7 Z
    Borland:+ A- S* ^7 N) O0 S
    ; g+ q7 D8 E' x6 N" t7 O2 y
    set LINKFLAGS=%LINKFLAGS% -aa, N2 l+ Y7 R' v; Y. O
    ———————————————————————————————————————–
    ( v- V3 Z' {1 Q. \& Z1 M4 H: _8 y- `$ m; l5 Y
    方法一:
    ! H- D! P8 e* p! H( q( |8 j已有gui.m文件和gui.fig文件
    : f1 ~% J3 x9 m: H0 ~1 在matlab的command窗口中输入
    * F* \6 p& O3 }- hmcc -B sgl GUI.m* R1 ~" S0 @  h; W, ~. U
    2.将上步生成的文件包括*m 文件和*.fig文件一起考到待运行的机器
    ! Z% `: p% t/ P4 v$ L6 y/ c/ @: {+ f$ `0 N
    此时仍需matlab所必需的动态连接库。
    5 F( v2 \- V5 I1 D: D% J0 c% p3. 将 /extern/lib/win32/mglinstallar.exel拷贝到到待运行机器上
      U( F) e+ t1 {% g4.在机器上先运行mglinstallar.exe, 然后选择解压目录,将在将在指定目录下解压缩出bin和toolbox两个子目录,/ B6 |( }2 V  t. Y+ d  Q, c
    其中在bin\win32目录下就是数学库和图形库脱离MATLAB运行所需的所有动态连接库,共
    8 x$ h1 B3 W9 H& F有37个。可以将这些.dll考入system32, 也可以直接放在应用程序目录下。! Z% b) f0 E9 d( y6 c7 _5 `
    而toolbox目录则必须与应用程序同一目录。
    6 Q* M; m' A# ^) a8 d4 ?
    4 U' Z. Y+ z7 I1 h8 }: }9 ~2 l方法二:
    7 {7 y  v" d, \, X$ E6 K5 G
    * k8 Z( {6 [1 {7 Imatlab编程很方便,强大的矩阵运算功能,很多好用的工具箱,但是一般程序都要在matlab环境中运行,能否脱离这个环境打包发布呢,matlab 也提供了这样的工具。
    ( R- [: W! }% R, X" m/ y. ?. H
    0 d2 T2 Q+ A& W% n* W" t1. 转化为c/c++程序并编译为.exe
    / Q2 b% \- S3 m先验证mcc是否可用,用matlab中的example验证即可! ~: q. _; X+ P, L
    建议不用matlab默认的lcc 编译器(可能有问题),可使用VC6编译器(按默认路径安装)/ K3 p* n! k  I- R
    由于带有界面,需要图像库支持,编译时应使用命令: mcc -B sglcpp pressure! [" x- |% x# O& C7 P& C
    编译生成若干c/c++源码,以及.exe文件、bin目录中figure菜单条/工具条文件(.fig)等1 P4 G% x% U: F$ s  n) E
    程序发布需要.exe、bin\、.fig5 T% h# j' [2 w( n+ S$ o

    & z% R& `) @7 t' D2. 在未装matlab的电脑上运行程序需要数学运行时库、图像运行时库以及用到的工具箱mex文件. a4 J5 q$ y- y& V% n4 O8 ^4 H5 x" y
    前两者已经在\matlab\extern\lib\win32mglinstaller.exe压缩包中,将其解压,并在环境变量path中添加解压到的路径3 u# x9 e1 _; J
    另外若程序中还用到其他工具箱的东西,那么需要将此工具箱中需要的mex文件也一并放在解压到的路径,子文件夹位置与matlab中的位置相同0 y. k3 ~# x2 [9 K

    5 h7 O# O" N- u/ ]6 E3. 在确保.exe程序可以运行的情况下 可以用setup factory打包发布8 q! b# ?. {* A
    以下通过注册表自动添加path路径* X/ Q% Z# ^3 r1 M! r
    %————————————————————————————–, \$ X1 }+ x, b8 U
    Screen.Next(); — 进入下一个屏幕( Z6 c9 C" Q! n" W
    resultDialog = Dialog.Message(“注意”, “向环境变量中加入matlab数学库及图象库的安装路径?”, MB_YESNO, MB_ICONINFORMATION, MB_DEFBUTTON1);. y0 j* v! z! \! X0 d
    if (resultDialog == IDYES) then –加入安装路径: }; \+ ?$ A6 B6 E
    strPath = Registry.GetValue(HKEY_CURRENT_USER, “Environment”, “path”, true);! \2 n( m  z$ P* N. W& V, J" ]
    if strPath ~= “” then
    / }, G& T+ X! M: K: W* x) | strPath = String.Concat(strPath, “;”);
    " `+ i  p- R) }end
    5 {7 b; G$ c4 m. ^ strPathToAdd = SessionVar.Expand(“%AppFolder%”);7 b7 \. S9 E3 y9 k! `
    strPathToAdd = String.Concat(strPathToAdd,”file://MATLAB6p5//bin//win32″);
    9 f8 Q3 q  q/ E— 如果路径中无该位置,则加入4 A0 t0 {0 A; J2 k! G# t2 m' g
    if String.Find(strPath,strPathToAdd) == -1 then0 A" D: v  O2 J  k
    strPath = String.Concat(strPath, strPathToAdd);
    + ?" S5 Y* x( C! [7 L2 }# S Registry.SetValue(HKEY_CURRENT_USER, “Environment”, “path”, strPath, REG_SZ);
    " s/ |9 [! l8 O9 ^0 G end( U# O5 o& ^" }0 M+ _+ B* D8 B
    end
    , g4 n1 S( G. c! y* [$ [%————————————————————————————–
      R/ @6 \4 d' U! ^2 E/ c) O' c方法三:: f6 H8 @& q# B, Q* l! T
    在网上搜了一个方法,还没有用过, 贴在这里仅供参考:% p+ A3 k( C6 e+ ]
    一、 完全可以,而且生成的.exe文件可以在没有安装matlab的机器上使用,方法吗---
    ; @; ]! t, y0 k; o5 S首先,使用mcc编译得到.exe文件,具体参数见帮助文件;  c6 J9 u, Q6 x1 g
    其次,将.exe文件及相关资源文件以及一个称为mglinstaller.exe的软件包一起拷到别的机器上,运行mglinstaller.exe,并添加环境变量path,即可执行.exe文件* ~3 _! j& V6 N
    第三,在MATLAB环境,执行命令8 s& a5 T* \# }8 M" S2 D- R0 }+ u
    mcc -m -B sgl file.m2 @+ X2 z# D% ]2 ^
    或者 mcc -p -B sglcpp file.m
    3 w( N9 ]/ v( k0 w. t请键入help mcc看帮助。
    ( O( o+ R# s+ O5 Y" mmcc是在“command windows” 用的吗?
    # V# |+ `( k+ e; r/ ], `! [# ?只要“mglinstaller.exe”,与.exe文件及相关资源文件就可以了吗.$ |8 \& u# Z5 k
    还有“添加环境变量path”是path到.exe文件的环境中是吧?7 ?$ k( q& H% u4 O. M  s

    % E4 l9 L3 e1 V% D0 Y; q9 u; ~! J二、 在matlab下的workspace里打comtool,点file-open project将我们先前建好的 comtest.cbl工程文件打开,再点component–package component就实现了打包,此时到 comtest\distrib文件夹里看,生成的comtest.exe就是打包后的解压程序,双击它会解压出一些文件,再点击解压出来的 _install.bat就可以实现安装& J3 E' r* ?9 t
    三、 如何将gui生成exe ?1 v$ O8 [+ r- A( o4 |" ]
    已有gui.m文件和gui.fig文件
    . \( E, \$ R: v1 L0 \1 在matlab的command窗口中输入
    " j" K, y1 @! K2 @mcc -B sgl GUI.m4 p6 s( m1 m# J' [. u2 O
    2.将上步生成的文件包括*m 文件和*.fig文件一起考到待运行的机器
    , f) S( J6 ?1 E; i. ]" T, r此时仍需matlab所必需的动态连接库。
    ' {# N& Y+ H' U2 g/ _9 ?5 K/ Q* v3. 将 /extern/lib/win32 /mglinstallar.exel拷贝到到待运行机器上, H5 G, m3 D& t- U
    4.在机器上先运行mglinstallar.exe, 然后选择解压目录,将在指定目录下解压缩出bin和toolbox两子目录,其中在 bin\win32目录下就是数学库和图形库脱离MATLAB运行所需的所有动态连接库,共有37个。可以将这些.dll考入system32, 也可以直接放在应用程序目录下。而toolbox目录则必须与应用程序同一目录。
    / M0 t4 h+ E+ x! F! e6 J5.大功告成。
    7 K( U0 E; y$ ^. \- L! j
    . M2 d  Z8 t8 r, q7 U: O: Z* {  p+ a外一篇:MATLAB M文件变exe文件
    4 P2 r! S& @9 k3 z+ m6 ?我也是最近才搞定的这个问题,按下述步骤进行,就没有问题,我已经运行成功,但是遇到你程序的bug的话,便会出现错误,关闭整个程序6 I* K8 _6 L4 y7 x
    希望这些对你有用" ~$ h5 K% I; R

    + B7 B/ ~. }4 ~: `% T- O6 F: _, D如何将MATLAB程序编译成独立可执行的程序?如何将编译好的独立可执行程序发布在没有安装MATLAB的电脑上?下面将一步步实现:
    3 D! G4 j5 S: E; G3 A/ n6 k, w$ [
    一、生成独立可执行的程序(exe文件)步骤. W  k- n# ~7 E9 d. h7 [, n

    0 ?) C; k$ l4 i) j7 {$ b1、安装编译器。可有多种选择,matlab自带了一个LCC,推荐使用VC++6.0,我基于VS 2003实现。
    ; y; G- R$ R2 A2、设置编译器。在matlab命令行输入mbuild –setup以及mex –setup,选择安装的c编译器。# H9 t7 H4 |7 x7 k2 y0 b
    3、调用编译器。此处使用MATLAB下的一个GUI平台deploytool下完全实现。在命令窗口输入deploytool即可看到。具体使用方法请Help。
    4 l0 w8 }1 e9 \当然,也可以输入mcc -m filaname, filaname为要转成exe的m文件;/ M$ ?5 S! b# v: h" ^* X
    注:在以前的版本中,用编译命令mcc -B sglcpp filaname;自2006的版本后,替换为mcc -mfilaname;
    . Z: V! D* h; Y2 S, I" |4、安装\toolbox\compiler\deploy\win32目录下的MCRInstaller。
    & F7 c" E, m% a( Q( v# N6 o* _' C2 v4 }2 j7 i4 O, y
    二、脱离matlab运行可执行程序
    0 `# h8 Q* u& s2 P3 i: fMCR是由matlab的运行环境,占用不到300M的对于用不同matlab版本生成的exe文件,MCR版本也会有不同,因此,在程序打包时,最好将相应版本的MCR一起打包。MCR环境的设置文件存放目录如下:7 P) {: B/ j5 M3 M
    \toolbox\compiler\deploy\win32
    . y  y: s! b0 V  Z& m0 I文件名为MCRInstaller.exe。可将其拷贝到自己的文件夹中,(7.0以前的版本是mglinstaller.exe)。
    8 v* }2 q! e2 g2 U1 Z- ^在MATLAB里运行可执行程序的办法是在前面加一个!,比如:!picshow,后缀名可有可无。
    ) i+ [* G) z9 s1 g2 d  S在其它没有安装matlab的机器上运行exe文件前:
    8 X+ @/ C" H2 C3 Z首先安装matlab的运行环境。在同一机器上可以并存不同版本的matlab环境(换句话说不同版本不兼容)。/ B$ Z* f" X: W
    其次是要将“MCRinstaller.exe安装目录\runtime\win32”这个路径添加到该计算机的环境变量中,通常是自动加载。" v. {7 I7 B9 I) ?0 D/ T
    如果没有,也可手动安装,添加的方法是:3 G" x* Q+ J; r) P
    右击“我的电脑”“属性”“高级”“环境变量”“添加”指定一个变量名,然后将上述路径复制到里面就可以了。
    ; c8 \& M) O, H+ ]4 p) p, ]注:在安装过程中会弹出让安装Microsoft.NETFramework可以不用安装。# `( J4 v% m/ ~# d/ |& x9 O
    最后就是将编译生成的相相关文件拷贝到同一目录下,双击即可运行。0 ~$ o7 b8 j* Z' E/ d( w% U
    问题:目前此方法可完全运行在没有安装MATLAB以及C/C++的电脑上,但是如果是在AMD的CPU可以运行,但是不会出现任何MATLAB编译的界面。
    + h2 @. w8 d* |0 F% I7 R美中不足就是,运行的时候dos的那个黑色地窗口一直存在。下面将实现去除黑屏的办法:
    ( ?* o& u  a( M, y
      {/ E+ J) j& J% V% A- M/ v消除运行MATLAB生成的exe程序的dos黑屏的办法+ x# q$ G; d( C3 z  z* i, W+ i
    基于MATLAB生成exe文件后,每次运行都存在dos黑屏的问题,现在可以通过以下方法解决:
    4 z5 i1 }$ t" H方法一: 在命令窗口输入:
    3 `0 M1 n: O( C5 [0 Wcd(prefdir)
    1 v3 ?- k" D3 k0 i$ gedit compopts.bat+ K- q5 g1 p- F% i
    在打开的文件最后添加以下语句:2 V7 N9 _: l( ^9 S
    ) X; q6 s& F6 K* |+ a5 Q- p& k/ _
    A.VC环境下:
    " I+ h( |4 _) W  G7 G. P4 s+ T/ G, M' ~# p3 u  Y
    set LINKFLAGS=%LINKFLAGS%/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup
    ' T, }. L2 S, b; k" x4 I# m- h1 n& ^9 w  l4 T; N
    B.LCC环境下:2 r9 l. ]" E# g: i
    set LINKFLAGS=%LINKFLAGS% -subsystemwindows 2 A+ N0 I/ v! Y3 M: {

    , N" q3 W5 S/ G" QC. Borland:
    & ]* r6 E& B0 E" O set LINKFLAGS=%LINKFLAGS% -aa
    4 I* Z0 U- M+ r' n
    % N! p* o) K* Z% f2 l3 g保存以后,再重新编译m文件,生成的exe文件运行起来就没有dos窗口了( h- I6 e4 v* v# z2 e* O: z2 @
    ' f; o/ g# R) {" [. X& y/ n
    方法二:使用suppress工具:2 Z2 _2 l$ ?* y
    下载附件中的suppress压缩包后解压,(当然您可以自己去Google然后再下载)会看到一个suppress.ini文件,用记事本打开,然后将 其中“Name=test.exe”中text.exe的改为你生成的exe文件名。将suppress.exe(有个关盘和显示器的图标),改后的 suppress.ini放到你生成的exe的同目录下。执行suppress.exe或者您自己生成的exe可以了。当然您可以自己修改 suppress.exe的名字,改为您自己想要的名字。
    5 q0 q6 h& ]* H) I* D. A7 z3 Y( T6 s* @; Y% _( _
    其中的方法一在使用后生成的exe再到没有任何安装MATLAB的机子上运行也不会有黑屏了。6 {' y% B5 @- W4 K/ Y  o2 K
    方法二的缺点就是要同时存在您生成的exe以及supress.exe,必须在同一目录下。
    3 ^8 F# O# B. H1 E! Z
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    eagle1208 实名认证       

    1

    主题

    4

    听众

    25

    积分

    升级  21.05%

  • TA的每日心情
    开心
    2014-1-10 19:20
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    回复

    使用道具 举报

    15

    主题

    10

    听众

    799

    积分

    升级  49.75%

  • TA的每日心情
    开心
    2015-7-17 20:50
  • 签到天数: 68 天

    [LV.6]常住居民II

    自我介绍
    我是一名大二学生。

    群组2013年国赛赛前培训

    回复

    使用道具 举报

    2

    主题

    6

    听众

    117

    积分

    升级  8.5%

  • TA的每日心情
    开心
    2013-9-18 23:25
  • 签到天数: 53 天

    [LV.5]常住居民I

    群组Matlab讨论组

    群组2013认证赛A题讨论群组

    群组数学建模

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-6-14 06:24 , Processed in 0.539071 second(s), 74 queries .

    回顶部