警告!!!
注意!!!本篇文章如果是在工作中遇到问题查找答案,请务必直接看最后面的内容.(已用红色标出)
2019/7/19
在前两天,我终于遇到了人生中第一次关于Makefile的问题.
遇到这个问题,对于编译器的理解和认知也会提升很多,会有种恍然大悟的感觉.
众所周知我们在编译器调试的时候是分为两步骤:预编译和链接
其中我们会把文件分开来写
通过include来包含其他文件,但通常会出现重复包含从而报错,
这是预编译阶段的错误,为了防止这样的错误.
我们会用一个关键字#pragma once这样的关键字来确保只包含了一次.
或者
#ifndef ... #define ... #endif ... 来解决
但是,我们在用别人的编译器时,常常感受不到链接这个步骤到底是如何进行的.甚至我有一个误区,认为链接这个步骤是通过#include来完成的.其实这样说也沾点边.在书中也只是简单提一下,说大部分操作系统和编译器都帮我们做好了,顶多也需要一个第三方的插件,实际上确实如此,这些东西很多都已经被实现过了,甚至内嵌在了编译器里.我们无需关心,只需保证代码逻辑即可.
我也一直,抱着这样的心态来学习的.也推荐这样的心态,我的老师们也是说只需要知道有链接就行了,那么为什么,我们要学习链接呢?那就是因为: