QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 13972|回复: 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等的文章很少大都是那几个 ,我自己在网上找了些东西总结了下:
    9 b- i. S- N! M" ]! o' u7 H, U/ P6 }7 C3 [; N
    1.Matlab环境设置
    要建立独立运行的C应用程序,系统中需要安装MatlabMatlab编译器、C/C++编译器以及Matlab C/C++数学库函数和图形库函数。& l$ w: \* z0 @* R$ ^( \( g! C
    Matlab编译器使用mbuild命令可以直接将C/C++源代码编译为独立运行程序,在这些源代码中可以使用Matlab提供的接口来调用Matlab数学库函数。
      O; U4 ^# U- }0 q/ ]: c" y5 Y4 y
    虽然生成的可执行程序可以脱离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.lib: `1 s* o& D: I% e4 K  m
    libmat.lib' y- [1 z8 _, c  l* }  i3 S* u4 v( ?
    libmex.lib' F/ T3 i3 T$ F) \
    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"
    ) w: }% H+ m! V: Q+ s! L/ V
      
    7 X1 l% z; M' q) `% c1 p1 J1.设置编译器:
    ( C! i( d$ h% F1 s: m; {& j: C8 ]3 v在确定安装好Matlab Compiler后,还需要对Compiler进行适当的配置,方法是在Matlab命令窗口输入:2 F0 B9 ]0 y% R6 u: a! e
    Mbuild –setup, 按提示选择matlab自带编译器LCC。; S5 L0 I- y2 B- f

    9 X* [, a7 t5 o3 n2.将脚本编译为可执行文件:7 c) N0 m" K  U! j8 Y
    如项目文件包含:gui.m, gui.gif, fun1.m。& ~. O' M- ~4 _6 J: @/ r
    & E5 g) T. y$ }4 g
    在此路径下命令行输入: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环境运行必需的文件。
    * r* N" w2 `- F2 V. }. `$ x" u' G* V0 Z4 n( y- Y8 v
    3.在未安装matlab的机器上运行可执行程序。) H; C  D& f# z9 C& s# G
    将R22007b\toolbox\compiler\deploy\win32中的MCRinstaller.exe安装到该计算机上,将生成可执行程序脱离matlab运行所需的函数库。
    + Y% X, r2 w2 d+ G4 U. l将2中生成的gui.ctf,gui.exe拷贝到该计算机同一路径。运行gui.exe将生成gui_mcr文件夹,包含程序运行所需的库。至此完成。
    6 Z% i8 S( N3 J* n  {% N" j' F  c4 ]) n& _+ x
    4.去除独立可执行程序运行时的“DOS黑窗口”。! u" P4 Q: f; K, S1 m
    以上生成的exe程序运行时首先弹出一个DOS界面窗口,如果不需要其输出数据和错误信息,可将其去除。5 P8 f0 T% j9 y
    8 u, z6 |& L$ d0 y
    matlba命令行输入:$ X/ x/ }0 p2 f& o" P0 \* W

    7 s# X' i' p3 J- O7 Ucd(prefdir)4 J1 h: ~9 U6 k( g# g" t
    edit compopts.bat. ?' B1 q; x1 d5 {5 y% j, ^2 y# q$ U
    6 p1 n. p. J% t$ S- R5 m
    此时compopts.bat打开,在文件最后添加:) i) ?' {6 ]/ c

    8 \' J) j' y3 |) y3 Uset LINKFLAGS=%LINKFLAGS% -subsystem windows
    4 a3 I& i4 v# m. s" x. @6 r5 G& j  }, q2 z
    如果程序比较复杂,易出现异常,则不建议去除这个dos窗口以便调试。
    4 n& r* _' N4 A' q: e
    % j; ?* f+ `, z+ `另外,这个办法是适用于你用的编译器为LCC,如果是其他的,那么所加语句有所不同7 Q. N7 y1 M/ L6 Y! b3 h
    + r- K! |6 M2 R7 }( w" e
    Microsoft Visual C/C++:) a1 x+ r: R5 e2 L

    0 O( R. d) P8 D% S8 q! e3 G$ N0 ]set LINKFLAGS=%LINKFLAGS% /SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup% x: X) t) }  u5 B* ]

    1 V. \' _" o! y. L/ R$ Z7 D" zBorland:
    . n! [' H, ?' a9 S
    / u7 `& j; f! R4 V# Nset LINKFLAGS=%LINKFLAGS% -aa5 Z. }: w2 d7 `+ a8 `5 g/ Z3 U! w( d
    ———————————————————————————————————————–
    / p  e' B' N& ^% Q0 X" C% J3 N: w* p6 {' e" ~
    方法一:: S$ x! I/ T) M3 Z0 ?8 n
    已有gui.m文件和gui.fig文件! E; `& F9 h/ q
    1 在matlab的command窗口中输入
    $ a$ h7 b2 g* C- N1 G- kmcc -B sgl GUI.m
    9 r6 J) Z1 t* e& F+ f' S2.将上步生成的文件包括*m 文件和*.fig文件一起考到待运行的机器; Z2 Q9 S3 S# w9 G! `% q

    3 N& p, M6 |4 z5 [  W此时仍需matlab所必需的动态连接库。7 X' E1 b4 F9 i4 ]% J
    3. 将 /extern/lib/win32/mglinstallar.exel拷贝到到待运行机器上3 r3 R3 ~# G0 U7 m$ `1 S
    4.在机器上先运行mglinstallar.exe, 然后选择解压目录,将在将在指定目录下解压缩出bin和toolbox两个子目录,. i6 a# q. a4 _
    其中在bin\win32目录下就是数学库和图形库脱离MATLAB运行所需的所有动态连接库,共! j' k2 j- u; M  B
    有37个。可以将这些.dll考入system32, 也可以直接放在应用程序目录下。
    2 W6 H" [1 u- C9 a& B而toolbox目录则必须与应用程序同一目录。
    7 A6 X, S3 u% w# f5 `" K
    1 u& c" o' Z' D; a0 Z; Z方法二:
      l  r. v3 V' u7 O* H8 j1 u& y4 h) p& n
    matlab编程很方便,强大的矩阵运算功能,很多好用的工具箱,但是一般程序都要在matlab环境中运行,能否脱离这个环境打包发布呢,matlab 也提供了这样的工具。1 X0 k6 c+ r- x6 {! ^+ [
    & @0 z2 t  Z& D3 A" V7 g2 K3 L7 M
    1. 转化为c/c++程序并编译为.exe' Y6 \) f& X8 l4 b
    先验证mcc是否可用,用matlab中的example验证即可% l; T+ L( \- M0 C
    建议不用matlab默认的lcc 编译器(可能有问题),可使用VC6编译器(按默认路径安装)2 a, k8 @# f, O$ ^+ B' t1 ]
    由于带有界面,需要图像库支持,编译时应使用命令: mcc -B sglcpp pressure
    8 n0 Q5 l, ?2 [6 p" H编译生成若干c/c++源码,以及.exe文件、bin目录中figure菜单条/工具条文件(.fig)等$ O. H* ~3 j9 o' S* z
    程序发布需要.exe、bin\、.fig" }, K4 @+ ^" }# i
    4 m& a: p) F' H! g7 g* d
    2. 在未装matlab的电脑上运行程序需要数学运行时库、图像运行时库以及用到的工具箱mex文件3 c7 m* \8 Z" h5 V( x6 J
    前两者已经在\matlab\extern\lib\win32mglinstaller.exe压缩包中,将其解压,并在环境变量path中添加解压到的路径; c% v( ~7 e4 `; `2 b" y
    另外若程序中还用到其他工具箱的东西,那么需要将此工具箱中需要的mex文件也一并放在解压到的路径,子文件夹位置与matlab中的位置相同
    5 s: A3 D% Q: g5 h# l/ I- O5 F, u) s% u
    3. 在确保.exe程序可以运行的情况下 可以用setup factory打包发布
    6 G& ?2 d4 V& S2 U' U以下通过注册表自动添加path路径3 U" L+ n! E: z: H% _7 c- |
    %————————————————————————————–' L# Q; S3 g( \
    Screen.Next(); — 进入下一个屏幕
    ' K/ M( U/ [- o$ o+ L  L/ nresultDialog = Dialog.Message(“注意”, “向环境变量中加入matlab数学库及图象库的安装路径?”, MB_YESNO, MB_ICONINFORMATION, MB_DEFBUTTON1);. U, }. x# O& R
    if (resultDialog == IDYES) then –加入安装路径) u  A3 K3 k) @2 x4 S8 h& T: I
    strPath = Registry.GetValue(HKEY_CURRENT_USER, “Environment”, “path”, true);+ ]% _" E" J# y# Y; B( J
    if strPath ~= “” then" X  s5 ~4 w. a
    strPath = String.Concat(strPath, “;”);
    * S! |& Q+ m& G1 g. ]( |% O0 lend
    2 K- y% b5 u) ^" U strPathToAdd = SessionVar.Expand(“%AppFolder%”);
    6 w2 C; B$ V/ W0 CstrPathToAdd = String.Concat(strPathToAdd,”file://MATLAB6p5//bin//win32″);
    ' X# q& ]4 z( F3 B— 如果路径中无该位置,则加入
    8 V% \2 s. [% J" c# Iif String.Find(strPath,strPathToAdd) == -1 then/ U0 d3 m# Z6 u& B4 W3 ]6 z( m
    strPath = String.Concat(strPath, strPathToAdd);$ \4 j! p. t* o* u. S; V8 i6 c
    Registry.SetValue(HKEY_CURRENT_USER, “Environment”, “path”, strPath, REG_SZ);" {) y* q! b% Z
    end
    6 m# N% V: b& zend
      a; `8 ]) A1 W. R7 e4 Y%————————————————————————————–
    & Y, ^2 c( K5 Z  ~4 Q% k& E方法三:- x$ f, x$ N( J
    在网上搜了一个方法,还没有用过, 贴在这里仅供参考:
    8 K, B* N  [1 i一、 完全可以,而且生成的.exe文件可以在没有安装matlab的机器上使用,方法吗---
    / ^* u' o1 U+ J- I. i首先,使用mcc编译得到.exe文件,具体参数见帮助文件;0 i1 ]  e8 i2 E; ]+ `- m6 i
    其次,将.exe文件及相关资源文件以及一个称为mglinstaller.exe的软件包一起拷到别的机器上,运行mglinstaller.exe,并添加环境变量path,即可执行.exe文件
    ( Y/ n7 A: D4 c3 z5 k. E第三,在MATLAB环境,执行命令
    7 X7 |0 @+ J8 Hmcc -m -B sgl file.m
    " ?4 S9 E) t& b; b8 h或者 mcc -p -B sglcpp file.m
    # Y" e8 M! }) a6 G1 }; D2 n- B请键入help mcc看帮助。
    4 n' F9 A4 w1 [& s/ h2 z3 l. }! mmcc是在“command windows” 用的吗?6 |. b/ P) F% z2 U/ O9 o
    只要“mglinstaller.exe”,与.exe文件及相关资源文件就可以了吗.) |2 H, R" k2 H0 h& r
    还有“添加环境变量path”是path到.exe文件的环境中是吧?" O- x0 A2 F$ C, x' L: t5 _
    ' @; g5 u- _' T8 C# q
    二、 在matlab下的workspace里打comtool,点file-open project将我们先前建好的 comtest.cbl工程文件打开,再点component–package component就实现了打包,此时到 comtest\distrib文件夹里看,生成的comtest.exe就是打包后的解压程序,双击它会解压出一些文件,再点击解压出来的 _install.bat就可以实现安装
    3 G* y- D/ l( E+ e( c" @三、 如何将gui生成exe ?$ l: p$ d) r( b" j* V
    已有gui.m文件和gui.fig文件( s: z7 E6 S% t+ W% c1 r) X/ A3 l6 N
    1 在matlab的command窗口中输入
    5 k0 k: p* |2 y3 `. ymcc -B sgl GUI.m7 R' W8 {, x- G9 [
    2.将上步生成的文件包括*m 文件和*.fig文件一起考到待运行的机器
    ; N# U- Y: k3 |6 C4 ?此时仍需matlab所必需的动态连接库。) D+ u8 @% V8 o, l$ h" a8 K
    3. 将 /extern/lib/win32 /mglinstallar.exel拷贝到到待运行机器上8 k3 n+ [  t% _* K+ x% A% }
    4.在机器上先运行mglinstallar.exe, 然后选择解压目录,将在指定目录下解压缩出bin和toolbox两子目录,其中在 bin\win32目录下就是数学库和图形库脱离MATLAB运行所需的所有动态连接库,共有37个。可以将这些.dll考入system32, 也可以直接放在应用程序目录下。而toolbox目录则必须与应用程序同一目录。
    ; G, ^- N' p' e4 V4 N$ ?+ [0 F( P; o5.大功告成。 $ Y  y, y" }  ]
    % i/ W" e1 |; S
    外一篇:MATLAB M文件变exe文件
    # X7 [) t  ^( _0 z, N# m我也是最近才搞定的这个问题,按下述步骤进行,就没有问题,我已经运行成功,但是遇到你程序的bug的话,便会出现错误,关闭整个程序
    6 K- s2 {( t: X' ]希望这些对你有用
    0 A8 z& |! ]- g6 n% t; g) x% T
    0 B3 Y' ^$ ]- o$ f如何将MATLAB程序编译成独立可执行的程序?如何将编译好的独立可执行程序发布在没有安装MATLAB的电脑上?下面将一步步实现:
    ( f1 W, N2 n1 ~: [9 @' V
    4 Z! D( X1 i7 T! j( U6 m' g一、生成独立可执行的程序(exe文件)步骤
    % s( d9 A8 `7 _- z% o5 o( A* w4 ^* o% i$ D
    1、安装编译器。可有多种选择,matlab自带了一个LCC,推荐使用VC++6.0,我基于VS 2003实现。5 G. _5 y  w  \0 [, `* O3 _0 \
    2、设置编译器。在matlab命令行输入mbuild –setup以及mex –setup,选择安装的c编译器。
    ' j; n- B1 \* W2 c. o" r+ i9 x3、调用编译器。此处使用MATLAB下的一个GUI平台deploytool下完全实现。在命令窗口输入deploytool即可看到。具体使用方法请Help。
    4 U- {8 @) [6 D; g# r5 V4 s- y当然,也可以输入mcc -m filaname, filaname为要转成exe的m文件;
    ) F' e" |4 J9 ~! C注:在以前的版本中,用编译命令mcc -B sglcpp filaname;自2006的版本后,替换为mcc -mfilaname;' k: y0 M2 j" M
    4、安装\toolbox\compiler\deploy\win32目录下的MCRInstaller。
    4 q8 i% M+ Y: o  N% T5 d( X: b" ^" \. ~1 I" r
    二、脱离matlab运行可执行程序5 ?+ [1 d& H) R* G, Y& w
    MCR是由matlab的运行环境,占用不到300M的对于用不同matlab版本生成的exe文件,MCR版本也会有不同,因此,在程序打包时,最好将相应版本的MCR一起打包。MCR环境的设置文件存放目录如下:# ?4 {8 Q% \- p! k3 N
    \toolbox\compiler\deploy\win32
    & D. O: I$ R, h0 y1 e6 N文件名为MCRInstaller.exe。可将其拷贝到自己的文件夹中,(7.0以前的版本是mglinstaller.exe)。
    ! u8 @- s  M5 O4 M- L! C# i: u, \在MATLAB里运行可执行程序的办法是在前面加一个!,比如:!picshow,后缀名可有可无。
    ; m1 z: I" Z' f  P1 k8 u# U, o在其它没有安装matlab的机器上运行exe文件前:
    % w" h4 t; Z5 ?0 v: n' U首先安装matlab的运行环境。在同一机器上可以并存不同版本的matlab环境(换句话说不同版本不兼容)。  E: S" l. ?; P- m, s( x
    其次是要将“MCRinstaller.exe安装目录\runtime\win32”这个路径添加到该计算机的环境变量中,通常是自动加载。
    ) F1 R7 D, V, F3 [* v1 ~如果没有,也可手动安装,添加的方法是:' }8 P* w; a4 `8 a) m
    右击“我的电脑”“属性”“高级”“环境变量”“添加”指定一个变量名,然后将上述路径复制到里面就可以了。
    " }7 S, Z% q% @) j( q注:在安装过程中会弹出让安装Microsoft.NETFramework可以不用安装。
    ' }$ [; @, [% G# k" U7 p6 y最后就是将编译生成的相相关文件拷贝到同一目录下,双击即可运行。
    ! l; i; M3 q4 T7 G7 L问题:目前此方法可完全运行在没有安装MATLAB以及C/C++的电脑上,但是如果是在AMD的CPU可以运行,但是不会出现任何MATLAB编译的界面。
    4 a7 Z3 k; o. P+ x7 b1 s. u美中不足就是,运行的时候dos的那个黑色地窗口一直存在。下面将实现去除黑屏的办法:- _, |, n  a7 O- h" c% |
    ( W2 I5 s& K8 \5 A3 ]6 j
    消除运行MATLAB生成的exe程序的dos黑屏的办法9 K: o! M# @( ?0 M# j! S
    基于MATLAB生成exe文件后,每次运行都存在dos黑屏的问题,现在可以通过以下方法解决:
    , e9 `0 o$ k) X6 ~! S方法一: 在命令窗口输入:
      H6 k. i' }, _( n: v: y$ pcd(prefdir)
    5 B1 ^2 ^+ p; Y" ]; }8 [$ ^7 _0 Zedit compopts.bat
    7 x# u# }& {- _& d# w# C- ?在打开的文件最后添加以下语句:
    # c; t& ]; K) o9 Z* R
    3 P  D4 D  \  m" t, X# _A.VC环境下:
    8 c2 E; v2 S' j( \8 w1 j9 T5 C- g) X0 ^- j* k3 A9 g. L
    set LINKFLAGS=%LINKFLAGS%/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup
    2 ?  q% g" H9 y! t- N0 n+ i" C. G- t  h3 q* C$ |* t" M4 S
    B.LCC环境下:8 o; \3 c9 Z2 e/ L% f
    set LINKFLAGS=%LINKFLAGS% -subsystemwindows
    - i) v9 x1 A$ {4 J& _& P1 c* `/ m2 `' b$ M: g: E% [
    C. Borland:3 z% P) D; u7 V* ]
    set LINKFLAGS=%LINKFLAGS% -aa
    0 v' M4 `: m7 N) R
    2 j6 `- w5 {3 Z: v3 Q  s保存以后,再重新编译m文件,生成的exe文件运行起来就没有dos窗口了6 y; U3 p* u, w% ^
    , p& |% l, {# O
    方法二:使用suppress工具:9 y; n. ^) q( J* O5 n. {
    下载附件中的suppress压缩包后解压,(当然您可以自己去Google然后再下载)会看到一个suppress.ini文件,用记事本打开,然后将 其中“Name=test.exe”中text.exe的改为你生成的exe文件名。将suppress.exe(有个关盘和显示器的图标),改后的 suppress.ini放到你生成的exe的同目录下。执行suppress.exe或者您自己生成的exe可以了。当然您可以自己修改 suppress.exe的名字,改为您自己想要的名字。
    ! {9 {* ?! k' ]6 d3 j& H  w" K7 L, E* ?, c- `5 f
    其中的方法一在使用后生成的exe再到没有任何安装MATLAB的机子上运行也不会有黑屏了。8 x" p* {$ m6 H3 Z4 f
    方法二的缺点就是要同时存在您生成的exe以及supress.exe,必须在同一目录下。  c* h& a2 @0 u7 G& W5 G- L9 d
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    2

    主题

    6

    听众

    117

    积分

    升级  8.5%

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

    [LV.5]常住居民I

    群组Matlab讨论组

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

    群组数学建模

    回复

    使用道具 举报

    15

    主题

    10

    听众

    799

    积分

    升级  49.75%

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

    [LV.6]常住居民II

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

    群组2013年国赛赛前培训

    回复

    使用道具 举报

    eagle1208 实名认证       

    1

    主题

    4

    听众

    25

    积分

    升级  21.05%

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

    [LV.2]偶尔看看I

    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-7-9 12:19 , Processed in 0.452935 second(s), 70 queries .

    回顶部