分享

makefile 编译连接

 Library_MJ 2019-01-30
《跟我一起Makefile》学习笔记

IDE:integrated development environment,集成开发环境。集成了代码编辑器、编译器、调试器等与开发有关的实用工具的软件。

HTML: hyper text makeup language, 超文本标记语言。是用来描述网页的一种语言。

编译:将源文件编译成中间目标文件Object File,在Windows下是.obj文件,在Linux下是.o文件。这个过程编译器需要源文件的语法正确、函数和变量的声明正确。
连接:把编译生成的大量中间目标文件Object File连接成可执行文件.exe。连接时主要是连接函数和全局变量。有时候由于编译时生成的中间目标文件太多,而在连接时又要明显地指明每一个中间目标文件的名称,编译就会变得很麻烦,这时就要对中间目标文件打包。在Windows文件下,称为“库文件”(LibraryFile),即.lib文件;在Linux下是Archive File,即.a文件。

小结:源文件首先会生成中间目标文件,再由这些中间目标文件生成执行文件。在编译时,编译器只检查程序语法、和函数、变量是否被声明。如果函数未被声明,编译器会给出一个警告,但仍然能生成Object File文件。而在连接时,连接器会在所有Object File文件中寻找函数的实现,如果找不到,那就会报连接错误码(Link Error)。在VC下,这种错误一般是:Link 2001错误,意思是说,连接器未能找到如函数的实现,需要指定函数的Object File。

makefile文件的好处就是“自动化编译”,一旦写好,只需要一个make指令,整个工程就可以自动编译,极大地提高了软件开发的效率。make是一个命令工具,是一个解释makefile文件中指令的命令工具。一般来讲,大多数的IDE都有这个指令,如Delphi的make,Visual C++的nmake,Linux下GNU的make。可见makefile都成为了一种在工程方面的编译方法。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多