【发布时间】:2011-03-13 14:21:05
【问题描述】:
所以几年前,我花了一些时间去摸索make,并获得了巨大的回报。编写用于构建我的项目和自动化任务的小 makefile 既有趣又富有成效。
当然,缺点是我的 makefile 过于具体,尤其是在涉及平台和库位置时。
所以这就是人们告诉我“自动工具来救援!”的时候。当其他人这样做时,它们似乎确实会起作用(我喜欢下载一些东西并运行 configure && make && sudo make install 并看着它正常工作),但我无法绕过它们。
我查看了一些 configure.ac 和 Makefile.am 文件,但我只是不明白发生了什么。我不知道标识符的哪一部分是开发人员的选择,以及哪一部分对自动工具有意义。我不确定我是否理解整个流程和Makefile.in 的意义。我想我只是在从我习惯的系统 (make) 到比它高一两层的系统上碰壁。
谁能告诉我一本教程或书(最好不要过于枯燥),可以教我使用自动工具的乐趣吗?步骤是什么,如何使用它们,如何从头开始编写自己的configure.ac 和Makefile.am?告诉我如何提高效率并与他们一起玩乐?
【问题讨论】:
-
并没有真正回答您的问题,但您可能也需要考虑 cmake。我发现它比通常的自动工具更容易使用。
-
作为用户的您学会了使用自动工具的乐趣。现在您将了解它的痛苦:)
-
我已经厌倦了所有这些自动工具的抨击。我怀疑那些讨厌自动工具的人真的在使用错误的工具来完成这项工作。自动工具旨在使实施 GNU 编码标准和构建约定变得容易。它们并不意味着您可以实现任何您想要的任意工作流程;如果您尝试这样做,那么是的,您会像尝试用锤子固定螺丝一样不开心。如果 GNU 约定不是您想要的,请务必使用 Cmake。
-
完全同意@ptomato。人们喜欢讨厌自动工具,但 CMake 更糟。对用户来说更闪亮,但更糟。一个特别突出的功能是将列表作为分号分隔的字符串的脑死概念。如果
.pc文件敢于声明多个编译器或链接器标志,这将导致(例如)PKG_CHECK_MODULES宏失败。分号进入命令行,然后kaboom! -
@Matt Joiner,你的意思是烹饪的乐趣? ;-)