工程支出命令,NET程序独立运营

.NET程序独立运行是指运营.NET的微机上,不须求安装.NET框架。

pwd
回到了根目录

.NET程序集“独立运转”并不是真正的单独,它是运作在mono运维时根底之上的。由于那个运转时方可独立存在,所以,我们无需在对象机上安装.NET框架。

此时见到系统重回了一个 /,这些 / 被我们称为系统的
根目录(root),那一个义务也正是大家以前在系统中的地方。

lovebet爱博体育 1

而是,大家要开展工作的岗位的门径为:

 

/home/user/project

 

因而,大家要学会怎么样切换我们随地的职位:

如上图:

输入 cd 命令,并在 cd 命令后增进空格,在后来输入进行专业的职分的不二诀窍:

 

cd /home/user/project

风流倜傥,嵌入或未嵌入.NET程序集的用C/C++语言写的主程序,那些主程序担当对mono运转时开展操作。同期还可协作.NET达成其它的任务(举例提供函数供.NET使用);

那正是叁个层级化路线,其实其得以经过

 

cd home
cd user
cd project

二,mono的.NET运营时,那是三个动态库文件(mono同期提供了静态库),是.NET程序集运行的最首要条件。

逐次达到。

 

下载输入 ls -l。
此处就有个old目录。

三,MONO运维时的铺排文件或文件夹(并不一定要求)。

lovebet爱博体育 2

 

image.png

四,外界的程序集并未内置到C程序中的其余的相关.NET程序集。

mv main.c old             //mv [选项] 源文件或目录 目标文件或目录

“独立运作”的进度是:

再选取移动操作:

C语言通过mono提供的运行时api,调用mono运维时有关函数,通过mono运维时加载并运维.NET程序。

lovebet爱博体育 3

 

一抬手一动脚文件

即:

再次创下制新文件,通过命令

C语言程序(your.exe卡塔尔(英语:State of Qatar)–à mono的.NET运维时(libmonosgen-2.0.dll卡塔尔国 –à .NET程序集

touch main.c 

 

开创新文件
这个时候能够瞥见:

libmonosgen-2.0.dll,便是.NET程序集的周转规范,也是.NET程序集与C程序之间数据沟通、函数互调的大桥。

lovebet爱博体育 4

好了,有了以上的理论知识,上边我们就先河实行一下啊

开创文件

 

old目录下把key删除

1.施用Xbuid命令编写翻译

lovebet爱博体育 5

lovebet爱博体育 6

删除“`key“`文件

 

更加多相关命令的可叠合参数及选拔意义,能够由此
man [空格] [命令名]的章程实行实行更加的询问(查询后退出只需敲击键盘上的
q 就可以卡塔尔(英语:State of Qatar)。

2.把编写翻译后的net 运转文件 写入到一个 char[]变量中,并记下这一个程序集的名目,大小

越多复杂的下令,点击这里

mkpack H:\Csharp\Mono\Test\TestBuild\TestBuild\WindowsFormsApplication1\bin\Debug\WindowsFormsApplication1.exe

多模块程序

事情发生以前的课中,全体文件操作都以单文件进行。对于多个只达成三个一定的天职,只包涵十九个函数的顺序来讲,单文件的集体章程还算能够选择,不过当程序更为长,程序完结的功力越多,将他们一切都集体在二个文书里就能够变得不那么轻易令人选拔了。

所以,大家供给学习怎么在 C
语言少校分歧功用在多少个代码文件中分别完结,然后将它们充作五个模块组织在一同为同二个顺序服务。


会生成3个文件

关于gcc命令

原地址:gcc命令中参数c和o混合使用的安详严整、弄清gcc test.c 与 gcc -c
test.c
的差别

gcc命令使用GNU推出的依据C/C++的编写翻译器,是开放源代码领域利用最广泛的编写翻译器,具备成效强大,编写翻译代码协理质量优化等本性。以往众多程序猿都使用GCC,怎么着技术更加好的运用GCC。近来,GCC能够用来编写翻译C/C++、FORTRAN、JAVA、OBJC、ADA等语言的顺序,可依赖供给选取设置支撑的语言。

语法

gcc(选项)(参数)

选项

-o:钦定生成的输出文件;
-E:仅实施编写翻译预管理;
-S:将C代码转换为汇编代码;
-wall:展现警示新闻;
-c:仅实施编写翻译操作,不实行连接操作。

参数

C源文件:钦赐C语言源代码文件。

实例
常用编写翻译命令选项

如果源程序文件名称为test.c

无选项编译链接

gcc test.c

test.c预管理、汇编、编写翻译并链接形成可推行文件。
此间未钦命输出文件,默许输出为a.out

选项 -o

gcc test.c -o test

test.c预管理、汇编、编写翻译并链接形成可奉行文件test
-o筛选用来内定输出文件的文书名。

选项 -E

gcc -E test.c -o test.i

将test.c预管理输出test.i文件。

选项 -S

gcc -S test.i

将预管理输出文件test.i汇编成test.s文件。
选项 -c

gcc -c test.s

将汇编输出文件test.s编译输出test.o文件。

无选项链接

gcc test.o -o test

将编写翻译输出文件test.o链接成最后可试行文件test。

选项 -O

gcc -O1 test.c -o test

选择编写翻译优化等级1编写翻译程序。品级为1~3,品级越大优化职能越好,但编写翻译时间越长。

lovebet爱博体育,多源文件的编写翻译方法

若果有五个源文件,基本上有二种编写翻译方法:

假设有多少个源文件为test.ctestfun.c

  • 三个文件一齐编写翻译

gcc testfun.c test.c -o test

testfun.ctest.c分别编写翻译后链接成test可施行文件。

  • 独家编写翻译各类源文件,之后对编译后输出的对象文件链接。

gcc -c testfun.c

将testfun.c编译成testfun.o

gcc -c test.c

将test.c编译成test.o

gcc -o testfun.o test.o -o test

将testfun.o和test.o链接成test

如上二种方法相比较,第一中方法编写翻译时必要有所文件再度编写翻译,而第三种艺术能够只重复编写翻译改正的公文,未更正的公文不用再行编写翻译。


再来复习一下:

gcc -c a.c 编写翻译成目的文件a.o

gcc -o a a.o 生成实行文书a.exe

gcc a.c 生成推行文书a.exe

gcc -o a -c a.c 编写翻译成指标文件a

gcc -o a a.c 生成实践文书a.exe

在a.c中引用test.c中的二个函数后:

gcc -c test.c 编写翻译成指标文件test.o

gcc -c a.c 编写翻译成指标文件a.o

gcc -o a test.o a.o 生成实践文书a.exe

gcc -o a test.o a.c 生成实践文书a.exe

gcc -o a test.c a.c 生成实行文书a.exe

gcc -o a test.o a.c 生成试行文书a.exe

总结:只要参数中有-c,总是变化目的文件;只要参数中无-c而独有-o,则连接变化实施文书。


在刚初始攻读 C
语言的时候,大家已经学习过,当大家的顺序只有四个main.c文本时,大家能够在命令行中通过

gcc -o program main.c

对单个代码文件进行编写翻译,生成可实行文件program,並且经过./program运转编写翻译生成的程序。在大家事情发生早先的学科中,计蒜客的读书体系也帮您进行了如此的操作。

对待于单个文件、单朝气蓬勃效用的顺序,当程序有三个模块时,难点就起来变得复杂了。大家对每贰个模块会率先编写翻译出各类模块对应的*.o目的代码文件(relocatable
object file),比方:

gcc -c -o set.o set.c

会将大家的二个set.c文件编写翻译成四个set.o的目的代码文件。请小心,这里的-c表示生成目的代码文件。-o与以前单文件的时候相通,在它之后我们会写明被转移的公文的名目。

当大家做到了每三个单身模块的编写翻译并得到它们的对象代码文件后,大家得以将大家的主程序的靶子代码文件与他们链接在协同。比方:

gcc -o program main.o set.o others.o

将目标代码文件set.oothers.omain.o在链接在一块儿,何况输出了
可试行文件(excutable file)program。

笔者们照例可以透过./program运行编写翻译生成的次第。

当大家将七个顺序写在多少个公文中时,每三个文件中的变量和函数暗许都以唯有文件内的局地才方可访谈的。但是有生龙活虎对出奇的全局变量、类型定义、函数可能会要求在几个文件中被运用。

那时候,我们能够将那类的内容单独写成三个 头文件(header
file),何况将全局变量、类型定义、函数评释写到头文件中。

对于一个文件set.c,习贯上它的头文件会被取名叫set.h。在装有供给用set.h中全局变量、类型定义、注解的函数的公文中,用

#include "set.h"

将相应的头文件引进。在这里地的引进头文件措施和引进系统库头文件的法子很相似,只然则这里用的是引号""并非尖括号<>

出于头文件里也足以引进头文件,由此大家恐怕实际数次引进同三个文件,比方我们引1.h2.h,且1.h也引入2.h,那时候因为2.h被引进了一遍,就有异常的大可能率现身重复的宣示。为了化解这几个题目,大家2.h中定义三个宏,在2.h的最先先判别这几个宏是还是不是被定义过,假使被定义过,就跳过2.h全部文件的情节。

此地我们将会用到三个新的预管理指令#ifndef xxx#endif,它们成对现身且#ifndef在前,功效是豆蔻梢头旦当时并没有已定义xxx宏,则这对#ifndef xxx,
#endif时期的内容使得。(个中xxx能够替换为随便宏名)

这样```2.h```可以写为类似于如下的内容:
#ifndef xxx
#define xxx
typedef enum Status { Success, Fail };
typedef struct {
    char *name;
    int age;
} People;
Status go_to_Jisuanke(People);
#endif

有心人的同窗早就开掘,倘诺在程序中从未引进2.h的职位定义了xxx宏,则#include "2.h"中的表明并不会被引进,由此大家不应有在那采用xxx这种平凡的名字。实际上,大家日常会利用一个与头文件名相关的名字来代替xxx,比如二个常用的代码风格里,那些宏的名字方式为工程名_路径名_文件名_H_

lovebet爱博体育 7

计算的几点

  • 某一代码中定义的函数假使供给被其它轮代理公司码文件所选用,应该将函数的扬言放入头文件,并在别的轮代理公司码文件中引进那一头文件。
  • 并无需把每一个函数单独写成二个模块,依然应该根据成效的剪切和促成去调整怎么抽取模块。
  • 能够独有多个.c的公文,也并不一定非要都拆出.h文件。
  • #include能够被用于引入系统库头文件也得以被用来引入自个儿实现的头文件。
  • 只可是在引进系统库头文件时,大家往往会接受尖括号<>,而在引入本身完结的头文件时平日用引号""
  • gcc时,-o随后写的是生成可施行文件的名称。-c的参数的使用会帮我们赢得二个目标文件。

//-c和-o都是gcc编译器的可选参数

//-c表示只编译(compile)源文件但不链接,会把.c或.cc的c源程序编译成目标文件,一般是.o文件。
//-o用于指定输出(out)文件名。不用-o的话,一般会在当前文件夹下生成默认的a.out文件作为可执行程序。

//例如
gcc -c test.c          //将生成test.o的目标文件
gcc -o app test.c           //将生成可执行程序app

gcc -c a.c -o a.o          //表示把源文件a.c编译成指定文件名a.o的中间目标文件(其实在这里,你把-o a.o省掉,效果是一样的,因为中间文件默认与源文件同名,只是后缀变化)。

data.c 是.NET程序集的二进制内容

Makefile

在头里学习多模块程序的时候,大家必要先把每一个模块的代码都生成为指标代码文件,然后再将目的代码文件联编成叁个可施行文件。如若每二遍编写翻译都要输入这么多命令,是或不是很复杂呢?如若老是校正一丢丢内容就需求重新编写翻译整个工程,是还是不是很浪费时间呢?

为了化解所境遇的标题,方便开荒,大家运用一个可以称作make的授命,它能够读取Makefile文件,并且根据Makefile中的准则描述把源文件生成为可进行的次序文件。

最主题的Makefile中包罗了生龙活虎二种格局如下的平整。请稳重,每一条准绳的命令前,应当要有贰个制表符\t。

目标: 依赖1 依赖2 ...
    命令

诸如,能够写一条准绳:

array.o: array.c array.h
   gcc -c -o array.o array.c

意味着生成的文件是目的代码文件array.o,它凭仗于array.carray.h
当大家在命令行中实行make array.o时,依据那朝气蓬勃平整,假如array.o不设有可能array.carray.h最少之风度翩翩比array.o更新,就能实践gcc -c -o array.o array.c

咱俩把上述代码保存为Makefile,与array.carray.h位居同等目录,在丰盛目录里进行make array.o就能够看到成效。

注意:Makefile里的除当前目录隐蔽文件外的第1个目的会化为运营make不内定目的时的私下认可指标。

再看:

main: array.o main.o
    gcc -o main array.o main.o

main.o: main.c array.h
    gcc -c -o main.o main.c

array.o: array.c array.h
    gcc -c -o array.o array.c

Makefile有多条准则时,假若大家希望只生成当中二个,大家得以在make命令后增加要求转移的靶子的名号。举例,在那间大家得以实行make main.omake array.omake main。当大家实行make main时,make指令开掘array.omain.o不设有,就能够依靠以它们为对象的平整先生成它们。

过多时候,会须要将.o为后缀的对象代码文件和可进行的前后相继文件删除,完全从头进行编译。那么大家能够写一条clean准绳,比如:

clean:
    rm -f array.o main.o main

rm一声令下表示删除文件,-f意味着免强,因而rm -f array.o main.o main

根据预期,当大家奉行make clean就足以去除array.omain.omain了。事实真的如此啊?

因为毕竟此时假诺已经存在clean文件,rm指令就不会执行了。为了减轻那么些难点,大家透过二个特有的措施告诉make这么些名叫clean的平整在clean存在的时候依旧有效。

.PHONY: clean

clean:
    rm -f array.o main.o main

.PHONY用以声美素佳儿些伪指标,伪指标与日常的对象的尤为重要差别是伪指标不会被检查是否留存于文件系统中而私下认可不设有且不会采纳暗中同意法则变化它。

在Makefile中大家还可以利用它的变量和注释。

# 井号开头的行是一个注释
# 设置 C 语言的编译器
CC = gcc

# -g 增加调试信息
# -Wall 打开大部分警告信息
CFLAGS = -g -Wall

# 整理一下 main 依赖哪些目标文件
MAINOBJS = main.o array.o

.PHONY: clean

main: $(MAINOBJS)
    $(CC) $(CFLAGS) -o main $(MAINOBJS)

array.o: array.c array.h
    $(CC) $(CFLAGS) -c -o array.o array.c

main.o: main.c array.h
    $(CC) $(CFLAGS) -c -o main.o main.c

clean:
    rm -f $(MAINOBJS) main

地点这些例子已然是四个比较完整的Makefile了。以#早先的是我们的讲解,大家在此用注释表明了大家定义的Makefile变量的用项。CC变量定义了编写翻译器,CFLAGS变量标志了编写翻译参数,MAINOBJS变量记录了main依据的指标文件。定义的变量能够直接通过$(变量名)张开应用。

data_.c 是为了文件客户调用的照准data.c的函数和变量

总结

  • 三个 Makefile
    能够分包七个法规,大家不只能够每趟在make后证实推行哪个意义,也可以因此定义的all来实践大器晚成四种的平整。
  • 在用gcc编写翻译时加上-Wall会展现错误新闻,Wall是用以体现大多警戒消息的,编写翻译错误音讯私下认可就能来得。
  • Makefile其实描述了意气风发层层转为对象文件、联编的历程,不利用make也是能够做到的。
  • Makefile中的变量是用$(卡塔尔(قطر‎的法子来用哒。

data.h  是data_.c的头文件,是客户c源码必需的。

Makefile体验

lovebet爱博体育 8

(1)

→ ~/project ls -l                                                                                 

total 16                                                                                          
-rw-r--r-- 1 user user 304 Sep 15 16:46 array.c                                                   
-rw-r--r-- 1 user user  87 Sep 15 16:46 array.h                                                   
-rw-r--r-- 1 user user 297 Sep 15 16:46 main.c                                                    
-rw-r--r-- 1 user user   0 Sep 15 16:46 main.h                                                    
-rw-r--r-- 1 user user 419 Sep 15 16:46 Makefile                                                  
→ ~/project                                                                                       
→ ~/project cat Makefile                                                                          

# 设置 C 语言的编译器                                                                             
CC = gcc                                                                                          

# -g 增加调试信息                                                                                 
# -Wall 打开大部分警告信息                                                                        
CFLAGS = -g -Wall                                                                                 

# 整理一下 main 依赖哪些目标文件                                                                  
MAINOBJS = main.o array.o                                                                         

.PHONY: clean                                                                                     

main: $(MAINOBJS)                                                                                 
        $(CC) $(CFLAGS) -o main $(MAINOBJS)                                                       

array.o: array.c array.h                                                                          
        $(CC) $(CFLAGS) -c -o array.o array.c                                                     

main.o: main.c array.h                                                                            
        $(CC) $(CFLAGS) -c -o main.o main.c                                                       

clean:                                                                                            
        rm -f $(MAINOBJS) main                                                                    
→ ~/project                                                                                      

lovebet爱博体育 9

(2)

→ ~/project make                

gcc -g -Wall -c -o main.o main.c                                                  
gcc -g -Wall -c -o array.o array.c                                    
gcc -g -Wall -o main main.o array.o                                     
→ ~/project                               

lovebet爱博体育 10

(3)

→ ~/project ./main              

1 2 3 4 5 6 7 8 9 0                                     
数组元素和为: 45                                             
数组元素平均值为: 4.5                                      

→ ~/project                                                 

lovebet爱博体育 11

(4)

→ ~/project make clean                   

rm -f main.o array.o main             

lovebet爱博体育 12

(5)

→ ~/project            
→ ~/project ls -l     

total 16                                             
-rw-r--r-- 1 user user 304 Sep 15 16:46 array.c          

 

命令行参数

之前,main函数经常都没参数,对应在运作时,日常就一贯输入可实行的顺序文件名(比方./main)。

但实际上main函数能够有参数。大家得以将此外过去无参数的main函数替换成上边这种有参数的main函数(可是思索到大家并从未选择,不写是很正规的)。

int main(int argc, char **argv) {
    // ...
}

在这里,main函数有七个参数,第三个参数是整数型,会流传命令行参数的个数,程序运转时就足以接受到。第一个参数是char **,此中蕴藏了顾客从命令行传递进入的参数。

就算我们的次序可实践文件名称为main,则在命令行中输入./main hello world大家会得到argc3argv[0]./mainargv[1]helloargv[2]world。假诺有越多参数也得以就那样类推。

命令行参数暗中认可都是空格分隔,可是风姿浪漫旦大家意在满含空格的四个字符串作为参数,我们则须要在输入参数时用引号将其卷入起来。

如果大家的前后相继可实践文件名叫main,则在命令行中输入./main "hello world" is my greet大家会拿到argc5argv[0]./mainargv[1]hello worldargv[2]isargv[3]myargv[4]greet

任何被吸收接纳到的argv参数都得以被用作不奇怪的字符串在代码里接受。在许多主次的规划中,我们会供给依靠选择到的参数来决定程序的施行方式,此时,学会运用argcargv就展现很主要了。在后头的课程中,你也会必要动用这一块的文化,应当要学通晓喔。

3.将编写翻译data.c编写翻译为对象文件data.o

有个别总括

  • 命令行读入的参数是从命令行键入的可执路程序路径始于考虑。
  • 在main函数中用来选择命令行参数的函数参数中,第三个是命令行参数的个数。
  • 在int main(int argc, char **argv卡塔尔(英语:State of Qatar)中,argc就一定为 2
    了,它取到的相应是命令行中键入的参数个数。

gcc -c -o data.o data.c

命令行参数

命令行参数是怎么获取和接纳的?

请先输入 cat main.c 看一下大家如今所在目录下的 main.c 文件。

lovebet爱博体育 13

image.png

总的来看,在此个 main.c 的公文中,大家的 main 函数获取了命令行参数的个数
argc(整数型)和大器晚成层层参数(字符指针的指针,能够用拜见数组的款式寻访)。

其风流浪漫顺序将预期输出命令行参数的数额,而且将每二个参数逐条列出。
接下去让我们 make 一下,完毕对那些顺序的编译。

lovebet爱博体育 14

image.png

完成了 make,就让我们把它运营起来呢。请输入 ./main
并运维起来那个顺序,并在现在自由输上有的空格分隔开分离的字符串,举个例子:

./main I feel better after this

我们前后相继中的argc
采用到的参数大器晚成共是多少个,它们分别对应了我们在极限中输入的哪生龙活虎部分的内容吗。

lovebet爱博体育 15

image.png

 

文件操作

事情未发生前课程中,大家上学、设计的保有程序都以从规范输入进行读取、向专门的学问输出实行写出的,操作系统为大家计划好了职业输入、标准输出的分界面。在此节课中,大家就要学习怎么从文件中张开读取、怎么着向文件实行写入。

在读文件的时候大家供给先有叁个方可让大家寻访到文件的 文件指针(file
pointer),它是八个FILE类型的指针。

大家得以经过上面包车型客车法子宣示叁个文件指针。

FILE *fp;

那时候,假诺大家期望对八个文件进行操作,大家要求先选用

fp = fopen(文件路径, 访问模式);

将文件指针和文件涉及起来,个中第三个参数是三个字符串,对应了大家期望访问的文件路线。第4个参数是访谈方式,它能够是象征只读格局的"r",也足以是意味只写格局的"w",还能是在文书末尾追加的"a"

当我们将文件指针和文件涉及起来后,大家就足以因此fgetc(fp);取稳当前线指挥部针之后地方的八个字符了,每获得叁个字符,指针会向后运动三个字符(假若到达文件尾部则会重临EOF)。

作者们那儿通过fputc('c', fp);的情势将字符'c'写入到fp事关的文本内了。

打探到那几个音讯后,大家就能够达成将二个文件复制到另三个文书内的函数了,举例:

void filecopy(FILE *in_fp, FILE *out_fp) {
    char ch;
    while ((ch = fgetc(in_fp)) != EOF) {
        fputc(ch, out_fp);
    }
}

本条函数接受的三个参数都以文件指针。这一个函数会通过贰个可读情势的文书指针逐字符地读取,况兼通过叁个可写情势的文本指针逐字符地将享有字符写出,进而起到复制文件内容的效果与利益。

你须求注意,在给文件指针实行命名的时候,要规避 stdin、stdout 和 stderr
那八个名称。因为那八个称呼其实早已用于标准输入、规范输出、规范错误的文件指针。

您恐怕会问了,那大家看来的 stdinstdout
stderr的那多少个文件指针能够平昔利用啊?回答是迟早的。

笔者们是透过
fgetc(stdin);得到来自专门的工作输入的字符,也得以经过fputc(ch, stdout);
fputc(ch, stderr);将变量 ch中的字符输出到专门的职业输出或正规错误中的。

除去fgetc和fputc之外,我们还是能使用fscanf和fprintf函数。那多少个函数都很像咱们曾经很熟练的scanf和printf函数,只是可是,scanf和printf
能够被作为 fscanf和fprintf 的特例。

我们应用 fscanf 从文件指针in_fp举办读取时,可以写成:

fscanf(in_fp, "%c", &a);

而借使大家写

fscanf(stdin, "%c", &a);

那将完全与下部间接运用 scanf 的法子优良。

scanf("%c", &a);

看似地,大家使用fprintf向文件指针out_fp举办写出时,能够写成:

fprintf(out_fp, "%c", a);

而生机勃勃旦我们写

fprintf(stdout, "%c", a);

那将完全与下部直接利用 printf的办法卓殊。

printf("%c", a);

在运用文件同时规定不再接续接受后,大家要经过上边所示的措施将文件指针fp与公事的涉嫌断开。你能够将它视为和fopen反倒的一个操作。

fclose(fp);

风度翩翩旦你不在程序中运用fclose,程序正常化结束时,程序会为有着张开的公文调用fclose

stdinstdout实在也是被展开的公文指针,如若您以为用不到的话,其实也是能够运用fclose将她们关闭掉的。你可以和煦节和测验生机勃勃试,关闭
stdinstdout 会对大家原先写过的主次带来什么样的震慑吗?

4.将编译data_.c编写翻译为对象文件data_.o

gcc -c -o data_.o data_.c -IC:/mono-3.2.3/include/mono-2.0

 

5.将data.o和data_.o 合成为多个单风华正茂的静态库:data.a

ar rcs data.a data_.o data.o

 

6.编译test.c和连接data.a,生成 test.exe

gcc -o output\test.exe test.c data.a %GCC_OPT% -lmonosgen-2.0

 

终极的结晶如下

lovebet爱博体育 16

 

winform 最大旨的 lib 有以下几个,增多到lib\mono\gac目录下。

lovebet爱博体育 17

 

运作试试,没不符合规律

lovebet爱博体育 18

 

那么最关注的事体来了。

其一文件打包了mono的.net 运营时,size有多大吗?

lovebet爱博体育 19

 

减削一下

lovebet爱博体育 20

 

相对来讲守旧的打包.net 运维时 这应当是多少个格外满足的品尝吗,甘休!

 

lovebet爱博体育 21

编写翻译后的顺序:lovebet爱博体育 22

 

 

假定我们感到有须求,下篇文章作者会写什么的陈设 打包遭逢。

相关文章