Index: script/ygopro_编译.html ================================================================== --- script/ygopro_编译.html +++ script/ygopro_编译.html @@ -34,10 +34,12 @@
来,走起,我们来编译一个小且可用的 ygopro 。
功能不求全,只要有残局功能就够了。
@@ -152,11 +154,12 @@这个临界点是人定的。
接下来,不讲底层了。
01 往上可以组建逻辑门,而汇编编程语言可以指导逻辑门的运行。
但问题在于各个商家给逻辑门定的汇编语言是不一样的,于是我们需要一个通用的汇编语言,而这就是 c 语言的别称——「便携式汇编语言」。
-一门编程语言可以大致分为三部分:语法、标准库、自定义库。
+一门编程语言可以大致分为三部分:
+语法、标准库、自定义库。
lua 会用到 c 语言的标准库,而我们从上面的过程可以看到系统肯定会有 c 语言标准库。
加个参数:
cl /MD /O2 /c ./lib/lua/src/*.c
这样子, lua 就会采用系统自带的 c 语言标准库了。
@@ -168,15 +171,96 @@cl /EHsc /TP /MD /O2 /c ./lib/lua/src/*.c
好,大功告成,这就算把 lua 编译完了。
不过,这时候,你的目录下会有一大堆的 obj 文件,不好看。
于是输入:
lib /OUT:lua.lib *.obj
-这就把所有的 obj 文件合成了一个文件了。所以可以把 obj -文件全部删了:
+这就把所有的 obj 文件合成了一个文件了。
+所以可以把 obj 文件全部删了:
del *.obj
也就是说,我们由一堆文件中编译出了一个文件:
lua.lib
+接下来,我们需要下载一个很厉害的软件,作者是理查德·希普。
+这一回应该不会遇到网络问题了:
+https://www.sqlite.org/index.html
+虽然,这一回我们不会再遇到网络问题,但可能会遇到这个网站的质疑:
+你到底是不是人?
+这是因为有些中国人恶意进攻这个网站,于是理查德专门把防范机器人的机制加强了。
+把解压后的目录复制过来:
+ygopro
+|—— lib
+|——|—— lua
+|——|——|—— src
+|——|—— sqlite3
+然后编译:
+cl /MD /O2 /c ./lib/sqlite3/*.c
+然后再连接与清理一下即可。
+其实 sqlite3 非常强,但是 ygopro +并没有对它擅加利用,这一点也体现在,你看这次的编译非常简单吧。
+编译简单是因为没有设置那些解放 sqlite3 力量的宏。
+下载:
+http://www.freetype.org
+目录结构:
+ygopro
+|—— lib
+|——|—— lua
+|——|——|—— src
+|——|—— sqlite3
+|——|—— freetype
+|——|——|—— src
+|——|——|—— include
+|——|——|—— builds
+编译:
+cl /MD /O2 /c /D FT2_BUILD_LIBRARY -I ./lib/freetype/include
+可以发现,上面添加了头文件所在的文件夹。
+但奇怪的是,怎么没看到c文件?
+因为这一次要编译的文件太多了:
+str["freetype_文件表"] = {
+
+"src/autofit/autofit.c"
+, "src/base/ftbase.c"
+, "src/base/ftbbox.c"
+, "src/base/ftbdf.c"
+, "src/base/ftbitmap.c"
+, "src/base/ftcid.c"
+, "src/base/ftfstype.c"
+, "src/base/ftgasp.c"
+, "src/base/ftglyph.c"
+, "src/base/ftgxval.c"
+, "src/base/ftinit.c"
+, "src/base/ftmm.c"
+, "src/base/ftotval.c"
+, "src/base/ftpatent.c"
+, "src/base/ftpfr.c"
+, "src/base/ftstroke.c"
+, "src/base/ftsynth.c"
+, "src/base/fttype1.c"
+, "src/base/ftwinfnt.c"
+, "src/bdf/bdf.c"
+, "src/cache/ftcache.c"
+, "src/cff/cff.c"
+, "src/cid/type1cid.c"
+, "src/gzip/ftgzip.c"
+, "src/lzw/ftlzw.c"
+, "src/pcf/pcf.c"
+, "src/pfr/pfr.c"
+, "src/psaux/psaux.c"
+, "src/pshinter/pshinter.c"
+, "src/psnames/psmodule.c"
+, "src/raster/raster.c"
+, "src/sfnt/sfnt.c"
+, "src/sdf/sdf.c"
+, "src/smooth/smooth.c"
+, "src/truetype/truetype.c"
+, "src/type1/type1.c"
+, "src/type42/type42.c"
+, "src/winfonts/winfnt.c"
+, "src/svg/ftsvg.c"
+, "builds/windows/ftsystem.c"
+, "builds/windows/ftdebug.c"
+}