实例学习写Makefile文件】的更多相关文章

目录 0. 扫盲 1. 编译,链接 2. Makefile文件执行 3. Makefile书写规则 4. 案例 5. Makefile是如何工作的 6. 拔高,参考 0. 扫盲 Linux 环境下的程序员如果不会使用GNU make来构建和管理自己的工程,应该不能算是一个合格的专业程序员,至少不能称得上是 Unix程序员(是不是夸张了点,别人说的). 什么是makefile文件?它是一个指挥文件,指挥着源文件编译的先后顺序,以及如何链接在一起. 1. 编译,链接 2. Makefile文件执行…
本文摘抄自"跟我一起写Makefile ",只是原文中我自己感觉比较精要的一部分,并且只针对C语言,使用GCC编译器. 原文请看这里:http://wiki.ubuntu.org.cn/%E8%B7%9F%E6%88%91%E4%B8%80%E8%B5%B7%E5%86%99Makefile 写完之后才发现基本上都是一些比较枯燥的规则,看看一.二.八三个部分就可以了.当作参考工具吧,什么时候用到了再来看看. 一.概述 我所使用的make 版本是 GNU Make 3.81,使用的系统是…
test.c文件内容 #include <stdio.h> int main(int argc, char const *argv[]) { printf("hahahah\n"); ; } Makefile文件内容 test:test.c gcc test.c -o test clean: rm -rf *.o 今天傍晚看了一会Makefile文件的写法教程,然后自己就仿照格式自己写了一个.在写Makefile的过程中体会到其语法特点,很像汇编语言的写法呢. 一个单位式的…
linux环境下,当项目工程很大的时候,编译的过程很复杂,所以需要使用make工具,自动进行编译安装,但是手写makefile文件比较复杂,所幸在GNU的计划中,设计出了一种叫做Autoconf/Automake的工具,用来自动生成makefile文件,为编译和安装程序提供了一个方便快捷的入口. 一.首先检查是否安装了autotools工具 使用which命令    aclocal    autoscan    autoconf    autoheader    automake…
在linux下写程序,免不了要写Makefile文件,用automake,总感觉比较麻烦,linux人喜欢做麻烦的事,以显得风格迥异. 其实用qmake生成Makefile文件相当简单. 1 装好qmake工具 2 在源码工程目录下,运行qmake -project 这样会生成一个*.pro文件. 3 运行qmake -makefile *.pro,生成Makefile文件. 此Makefile文件,包含很多的qt的信息,如果工程中没有用到qt相关的库,那么可以删去. 例子: 一个工程目录下:…
对现有的一个C++动态库文件和调用程序,分别编写Makefile文件,从零开始,这里把自己弄明白的一些东西分享给大家. 1.必须明确Linux下,C++的编译器是g++,C语言的是gcc.网上大多数又是以.c文件编写的makefile示例,所用的编译器是gcc,如果C++写成了gcc,C语言中没有类,会显示class未知的定义错误. 2.当有一个或多个动态库时,应该为每个动态库都写一个Makefile文件,为调用动态库的程序写一个Makefile文件,而不是写在一起,这样才方便之后的修改维护.…
最近一直在学习makefile是如何编写的.       当我们写的程序文件比较少的时候,敲入gcc /g++,当你在大型工程中,在一个个编译文件的话,你可能就会很郁闷.linux有一个自带的make命令,它让你的工作省去了很大的力气,但是你要学习如何编写makefile文件.       makefile是一种特殊的文件格式,他将会帮你自动管理你的项目,很强大.它是这样工作的:     1.make会在当前目录下找名字叫“Makefile”或“makefile”的文件.    2.如果找到,它…
学习资料 本文主要参考资料:驾驭Makefile(李云).pdf 原理 (1)最基本的语法 targets: prerequisites command targets是目标,prerequisites是先决条件,目标依赖于先决条件. command是生成目标的命令. 这一整个形式就是规则. (2)目标的生成 一个目标的生成(目标不存在或者依赖比目标新才会重新创建目标): (1)先判断目标是否有依赖,有则寻找相应规则生成依赖: (2)没有依赖,运行命令生成target. (3)依赖的生成递归调用…
Linux 下 的 cc 和 gcc     Linux 下 的 cc 和 gcc 周银辉 在Linux下一会看到cc,另一会又看到gcc,感觉又点混乱的样子.它们是同一个东西么,有啥区别呢 一分为二地看: 首先,如果讨论范围在Unix和Linux之间,那么cc和gcc不是同一个东西.cc来自于Unix的c语言编译器,是 c compiler 的缩写.gcc来自Linux世界,是GNU compiler collection 的缩写,注意这是一个编译器集合,不仅仅是c或c++. 其次, 如果讨论…
我们在写代码的时候不一定都是有自己来完成,一个工程中会大量使用一些比较优秀的动态库.静态库等,我们在使用这些库完成所有的代码后,需要在编译的时候将这些库使用的头文件添加到我们的工程上,将他的库文件也添加到我们的工程中,接下来我们就来看一下怎么来添加. 我们在项目中很少将第三方库与我们自己的代码放到同一个目录中,而是有一些约定俗成的存放方法: 如上图,我们会将第三方库的头文件放到include文件夹,将第三方的静态库放到lib文件夹,将动态库放到bin文件夹,(注:如果是使用开源库尽可能使用静态库…