- 主题:关于各种make我不是很懂得是
为什么不拿python直接写个库?还要搞各种make
--
FROM 115.199.104.*
在有python之前就有各种make了
你拿python直接写个库,于是又多了一种make
你不可能让别人把用了几十年的xmake换掉,安装python(而且python还有版本不向后
兼容问题,必须装指定的版本),改用你的新make
【 在 ziqin 的大作中提到: 】
: 为什么不拿python直接写个库?还要搞各种make
--
FROM 210.13.91.*
如果有成千上万个源代码,而且还有互相依赖,这时你修改了某个源代码,那么凡是依赖它的源代码都应该重新编译。一行行的输入
gcc first.c -o first.o
gcc second.c -o second.o
...
这是很繁琐的。人们发展了make这个好玩意。它通过makefile确定依赖关系和生成规则,并且根据时间戳,递归的把凡是修改时间比目标代码更新的文件及其依赖于它的文件都重新编译一下。一个典型的makefile长这样,
foo.o:foo.c
gcc foo.c -o foo.o
bar.o:bar.c
gcc bar.c -o bar.o
myprogram:foo.o bar.o
gcc foo.o bar.o -o myprogram
核心就是,依赖关系+生成规则。而为了适应不同的平台,适应批量的处理,还能定义变量,使用通配符。
经常碰到的事情是一个程序在不同的平台上编译,使用不同的makefile,因为在makefile中还得说明使用什么编译器,INCLUDE目录在哪里,库文件在哪里。人们总是想偷懒的,所以又发展了自动生成makefile的工具,有什么automake啊,configure啊之类的。
此外,还有qmake,wmake这些各种古怪稀奇的玩意。qmake是qt搞的,wmake是cfd软件openfoam重度使用的。基本道理都差不多。wmake貌似是会递归的查找当前目录及其子目录,然后在每个目录都去给编译一下。
实际上,visual studio系列也有这么个东西,不过不是makefile+make。它叫项目文件。在一个解决方案下可能有多个项目,每个项目就有个项目文件。如果我们用文本编辑工具打开这个项目文件的话,发现它说描述的是同样的事情,就是依赖关系和生成规则。当然visual studio系列也支持make,有个nmake工具。
https://seisman.github.io/how-to-write-makefile/ 这个说的很透彻。
人们连makefile都想自动生成。
能不能根据依赖关系和目标关系自动生成makefile,自动生成项目文件这些呢?你说对了,还真是有。cmake就是这么个工具。它根据CMakelists.txt和你选择的工具链去生成makefile这些,或者生成visual studio需要的项目文件。然后调用你的工具链去编译代码。
从我们前面的理解来看,cmake也是个函数,它的输入就是CMakelists.txt等,然后输出就是你所要的项目文件等。
Python也有个衍生品 SCons。
划重点=======================
make和makefile说的是依赖关系和生成规则。由此也有很多衍生品。
【 在 ziqin 的大作中提到: 】
: 为什么不拿python直接写个库?还要搞各种make
--
修改:leaning FROM 117.32.153.*
FROM 117.32.153.*
python 写的 scons 啊。
最近几年 meson 也越来越流行。它是 python 语法的,你可以看看。
这些构建里面有海量的细节。本质上是因为 cpp 是个垃圾语言。
【 在 ziqin 的大作中提到: 】
: 为什么不拿python直接写个库?还要搞各种make
--
FROM 47.243.39.*
【 在 hgoldfish 的大作中提到: 】
: python 写的 scons 啊。
: 最近几年 meson 也越来越流行。它是 python 语法的,你可以看看。
: 这些构建里面有海量的细节。本质上是因为 cpp 是个垃圾语言。
: ...................
scons 这玩意都多少年了,还没流行就很说明问题了。
--
FROM 1.91.33.*
是啊。支持 Qt 都没弄好。
就是我所说的,构建工具里面藏着大量的细节,没有大量体力活是做不起来的。
另一个原因是 Python 写的构建工具都偏慢。
【 在 hongdiao 的大作中提到: 】
: scons 这玩意都多少年了,还没流行就很说明问题了。
--
FROM 47.243.39.*
顺带又喷了一下cpp啊
【 在 hgoldfish 的大作中提到: 】
: python 写的 scons 啊。
: 最近几年 meson 也越来越流行。它是 python 语法的,你可以看看。
: 这些构建里面有海量的细节。本质上是因为 cpp 是个垃圾语言。
: ...................
--
FROM 222.129.205.*
点题你最行
- 来自 水木社区APP v3.5.5
【 在 hgoldfish 的大作中提到: 】
: python 写的 scons 啊。
:
: 最近几年 meson 也越来越流行。它是 python 语法的,你可以看看。
:
: 这些构建里面有海量的细节。本质上是因为 cpp 是个垃圾语言。
--
FROM 183.179.53.*
【 在 hgoldfish 的大作中提到: 】
: 标 题: Re: 关于各种make我不是很懂得是
: 发信站: 水木社区 (Sat Jun 11 10:18:32 2022), 站内
:
: python 写的 scons 啊。
:
: 最近几年 meson 也越来越流行。它是 python 语法的,你可以看看。
:
: 这些构建里面有海量的细节。本质上是因为 cpp 是个垃圾语言。
~~~~~~~~~~~~~~~这话不能乱说,我说了同样的话,老婆不同意,然后吵了一架
:
: 【 在 ziqin 的大作中提到: 】
: : 为什么不拿python直接写个库?还要搞各种make
:
: --
: 灭绝人性啊
:
:
: ※ 来源:·水木社区 mysmth.net·[FROM: 47.243.39.*]
--
FROM 222.90.93.*
羡慕可以跟老婆讨论这种问题
【 在 spadger 的大作中提到: 】
: ~~~~~~~~~~~~~~~这话不能乱说,我说了同样的话,老婆不同意,然后吵了一架
--
FROM 14.155.112.*