Title Text:Checking whether build environment is sane… build environment is grinning and holding a spatula. Guess not.
Origin:https://xkcd.com/371/
https://www.explainxkcd.com/wiki/index.php/371:_Compiler_Complaint
编译器的抱怨
https://www.douban.com/photos/photo/745002136/
编译器是一种将代码转换为计算机可以运行的机器指令的程序。指针是计算机程序中用于引用内存位置的变量。分段错误(segfault)是程序尝试访问无效的内存段时发生的错误。 Segfaults通常会导致程序以一种不正常的方式崩溃,并修复导致它们的错误。
在漫画中,计算机开始与Cueball交谈,并将一个段错误与他们遇到催眠混蛋时的不愉快感觉进行比较。然后计算机告诉程序员“仔细检查你的该死的指针”,因为段错误通常来自试图访问由无效指针引用的内存的程序。
实际上,在编译器生成可执行文件之后,会在运行时发生段错误。虽然Randall提到“编译器投诉”,但操作系统或其他主管程序更可能会有这样的抱怨。
标题文本引用GNU样式的autoconf配置脚本。这些脚本检查它们正在运行的系统的某些功能,以便正确构建程序;例如,某些系统期望系统调用以特定方式发生,并且autoconf脚本将检测到这一点并更改程序以匹配期望。这些脚本总是(并且是memetically)包括检查以确定“构建环境是否合理”。这实际上检查当前文件夹的路径是否具有“不安全”字符,以及新创建的文件是否比脚本本身更旧,这可能表示非常深奥的文件系统,损坏的源存档或只是设置错误的系统时钟;但是,由于这些文件修改日期是autoconf脚本如何工作的重要部分,因此它无法在“疯狂”环境中继续进行。无论如何,这个笑话是一个疯狂的建设环境就像一个疯狂的人,但兰德尔将两者等同起来。