【发布时间】:2012-01-31 06:57:57
【问题描述】:
我想知道一种编译使用许多文件的程序的好方法,并且我想避免重新编译未修改的文件。
它适用于 Linux,我正在寻找与 Makefile 不同的东西。
Makefile 有一些问题:
写起来很长,只要我创建新文件就改变它很冗长; C/C++ 使用头文件。
如果 Makefile 包含的 .h 文件包含另一个已修改的 .h 文件,则它不会重新编译 .c 文件。它需要复杂的语法。
Makefile 使用制表符,不好,因为我使用 tab 键缩进(它插入 4 个空格字符)。
举个例子,我原来的编译脚本是:
gcc file1.c -c -flags1
gcc file2.c -c -flags2
gcc file3.c file4.c -c -flags3
gcc file1.o file2.o file3.o file4.o -o a.out
我想避免用简单的方法重新编译不需要的东西。
【问题讨论】:
-
人们不得不想知道每个 .c 文件的不同标志是怎么回事。
-
请注意,您的四个空格问题是您的编辑器(或编辑器设置)的缺陷,而不是
make本身。任何不能让你插入任意字符的编辑器都是脑残。 -
关于 makefile 中的选项卡,如果您想要其他内容,可以使用
.RECIPEPREFIX。 -
我不明白你为什么不喜欢使用建筑软件的想法(比如
make或其他东西)。而且你总是可以将你的编译命令放在一个 shell 脚本中(但我建议使用omake或make)。见我的回复stackoverflow.com/a/8692140/841108 -
我将编辑器配置为使用空格而不是制表符。它有助于缩进。
标签: c linux compilation automation