update makru-tutor-2
This commit is contained in:
parent
8027608384
commit
6e3ea83374
1 changed files with 18 additions and 8 deletions
|
@ -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,还没看到任何反馈。别担心,下一篇文章里我们就会得到点反馈了。
|
||||
|
||||
下一篇文章:为可执行文件项目编写配置文件
|
||||
|
|
Loading…
Reference in a new issue