From 6e3ea833748e83a91020021ee480805a98440d72 Mon Sep 17 00:00:00 2001 From: thisLight Date: Mon, 18 Jan 2021 16:52:09 +0800 Subject: [PATCH] update makru-tutor-2 --- source/_posts/makru-tutor-2.md | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/source/_posts/makru-tutor-2.md b/source/_posts/makru-tutor-2.md index c88e7ba..63f2f33 100644 --- a/source/_posts/makru-tutor-2.md +++ b/source/_posts/makru-tutor-2.md @@ -1,6 +1,7 @@ --- title: 使用Makru和makru_langc管理现代C项目编译: 配置Makru和makru_langc date: 2021-01-04 18:49:20 +updated: 2021-01-18 16:37:00 tags: - Makru - C @@ -13,7 +14,7 @@ categories: 代码农场 这是一篇属于“使用Makru和makru_langc管理现代C项目编译”系列的文章,你可以在{% post_link makru-tutor-1 %}找到目录。 -注意:makru_langc尚未考虑对于Windows的支持,因为Windows并非主要的编译平台。在makru_langc之前,多数项目都是通过Visual Studio编译,我将在未来考虑如何支持以Windows作为宿主机系统进行编译。目前为止makru_langc仅仅考虑*unix系统的支持,如果你想要试用,建议你安装一个Linux发行版或使用Windows 10自带的Windows Subsystem for Linux 2。makru_langc不会尝试生成其它软件的项目文档,因为这并不是makru_langc的目标。 +注意:makru_langc尚未考虑对于Windows的支持。 ## 安装Makru Makru完全由Python编写而成,只需要你有Python。目前对于Python低版本的兼容性未知,但是你至少应该有3.6或更高版本的Python。我的环境使用的是Python 3.9.1。 @@ -72,9 +73,10 @@ __init__.py 这样就安装好了! +但这篇文章还不应该结束,设想一下:大部分情况下升级插件都不会破坏兼容性,如果你想要享受最新功能和bug修复,每一次更新你都重复下载-解压的操作,这种重复性的操作让人感觉不便。我们还需要一个新的方案。 +如果你使用Git来管理你的项目,这里有一个更方便的方法:Git子模块。 ### 通过Git子模块安装 - -但这篇文章还不应该结束,因为直接放源代码安装实在是非常不方便。如果你使用Git的话,这里有一个更方便的方法:Git子模块。让我们看看Git模块的简单解释: +让我们看看Git子模块的简单解释: {% quote "Pro Git, the 2nd edition" https://git-scm.com/book/zh/v2/Git-%E5%B7%A5%E5%85%B7-%E5%AD%90%E6%A8%A1%E5%9D%97 "7.11 Git 工具 - 子模块" %} 有种情况我们经常会遇到:某个工作中的项目需要包含并使用另一个项目。 也许是第三方库,或者你独立开发的,用于多个父项目的库。 现在问题来了:你想要把它们当做两个独立的项目,同时又想在一个项目中使用另一个。 @@ -85,7 +87,6 @@ Git 通过子模块来解决这个问题。 子模块允许你将一个 Git 仓 {% endquote %} 这正是我们需要的!实话说,我在使用Git两三年之后才接触到这个特性,我相信很多人从来没使用过它。不过它确实在一些情况下很有用,比如现在我们的情况。 -如果你仔细看过makru_langc的文件列表,你在读到这里的时候可能就会意识到了为何makru_langc要这样直接把代码文件直接放在仓库的根目录。没错,这就是为了子模块这个功能做的。 好吧,废话少说。如果你需要Git的子模块功能的话你需要先把目录变成一个仓库。我们可以使用Git的魔法咒语来完成这件事: ```` @@ -105,7 +106,17 @@ remote: Total 250 (delta 145), reused 183 (delta 104), pack-reused 6 处理 delta 中: 100% (146/146), 完成. ```` -然后你就会看见项目根目录下多了个makru文件夹和一个`.gitsubmodules`文件,运行`git status`会多出来两个东西: +然后就可以在相应目录下看到我们的插件: + +```` +$ ls /path/to/makru-tutor/makru/plugins/makru_langc +__init__.py +...其它文件 +```` +(如果你有过Python编程的经验,到这里你应该就明白为何makru_langc要采取这种奇怪的项目布局了) + +但是到这里事情还没完,我们还需要一个提交把我们的子模块放进树里。如果你需要了解Git,你可以看看上面引用的那本《Pro Git》,这本书有中文翻译。 +现在运行`git status`会多出来两个东西: ```` $ git status 位于分支 master @@ -118,8 +129,6 @@ $ git status 新文件: makru/plugins/makru_langc ```` -看起来是好了,但是我们还需要提交变更到仓库。如果你需要了解Git,你可以看看上面引用的那本《Pro Git》,这本书有中文翻译的。 - 要提交变更可以这样做: ```` git commit -m"随意产生的无意义信息(不" @@ -132,7 +141,8 @@ $ git commit -m"add makru_langc to makru-tutor" create mode 100644 .gitmodules create mode 160000 makru/plugins/makru_langc ```` -好了,一切结束! +然后安装就完成了! 不过,到这里我们仅仅是“做了件事”安装了Makru和makru_langc,还没看到任何反馈。别担心,下一篇文章里我们就会得到点反馈了。 + 下一篇文章:为可执行文件项目编写配置文件