很多 c 和 c++源码都用 makefile 进行编译,现在很多应用 cmake,但是 cmake 也是先转换成 makefile,然后进行编译的。就没有什么更好的方法进行编译吗?为什么非要依赖 makefile ?
1
KeepPro 2017-12-02 19:47:55 +08:00 via Android
相当于一个脚本实现编译自动化。你可以实现自己的 dmake,fmake 取代之。或者手动一个一个编译链接。
|
2
bao3 2017-12-02 19:52:06 +08:00 via iPhone
我也很讨厌,可是你总得指定几个参数来让编译器执行……
|
3
abscon 2017-12-02 19:53:03 +08:00 via iPhone
那楼主想要达到什么效果
|
4
ZyZyZzz 2017-12-02 20:06:55 +08:00 via Android
如果 LZ 是觉得 makefile 这种方式不可视化,麻烦。
那么 LZ 应该屈服于 C/C++的编译链接本来就这么复杂的事实,你学过编译原理的话应该明白我在说什么。 宇宙第一 IDE 算是一个编译链接配置可视化的典范之一吧,然而你仍得面对那一堆条条框框点来点去。 比起最原始的手动敲配置 cmake 已经算是拯救世界了好嘛。 当然 LZ 要是发现了适用于各种编译器的高端简便编译链接工具,请通知我。 |
5
msg7086 2017-12-02 21:38:17 +08:00
因为 make 是一个比较成熟又比较简单还到处都有的依赖执行工具。
你能找到替代品吗? 我自己是用 rake 的,写 rakefile,本质上一样,只是语法舒服点。 |
6
wsy2220 2017-12-02 21:38:58 +08:00 via Android
没有更好的
|
7
hsuan 2017-12-02 22:04:17 +08:00 via Android
你可以试一试 Android 源码里用的 soong
|
8
owt5008137 2017-12-02 22:10:48 +08:00 via Android
cmake 里支持那么多,你就只知道 makefile。你想用 ninja 也行啊
|
9
700388 2017-12-03 00:20:25 +08:00
说说我对 makefile 的看法吧。makefile 并不是编译器,g++ 才是,不过一个 g++如果要对很多文件编译的话,就要写很长的命令,为了解决这个问题,makefile 才出现了。可以更加自由的编译程序。
如果真要改革 makefile 真正要动的是 g++ 这个东西,貌似这个没人能写出更好的东西。所以 makefile 到现在也没法真正的改革。 不要想找到比 makefile 更好的了,最好的就是 makefile,精通后就知道他的强大之处。 |
10
Dannytmp 2017-12-03 06:57:31 +08:00 via Android
通常不是 configure.make.make install 吗
|
11
gnaggnoyil 2017-12-03 11:33:12 +08:00
LZ 当然可以不用 makefile 啊.在 POSIX binutil 底下至少还有 bazel 和 Waf 可以用不是么.或者 LZ 想自己撸一个也可以.甚至在一些特殊的情况下还有特殊的构建工具,比如用来构建 CPython extension 的 distutils.
不过我想提醒 LZ 一点的是(至少 GNU 的)make 面对"大量依赖并行处理"这个需求是很好用的工具,而额外撸在这方面能够做的更好的轮子不是一件简单的事情.所以 LZ 最好想想:你当然可以不用 make,但是你确定你不用 make 能够获得更多的好处吗? |
12
forestyuan 2017-12-03 11:38:13 +08:00
肯定有更好的编译方法,但是没有人去开发啊
|
13
srlp 2017-12-03 14:03:34 +08:00 via iPhone
bazel
|
16
xifan8866 OP @700388 那可能需要时间学习了,,但是给我的感觉就是入门难,和 vim 一个样,学成了是神级的,,没学成,什么也不是。
|
18
xifan8866 OP @gnaggnoyil 谢谢建议,,感觉看了大家的评论中之后,我还是去学 makefile 和 cmake 吧。。毕竟现在通用。
|