Makefile自动生成】的更多相关文章

前言 Makefile自动生成头文件依赖是很常用的功能,本文的目的是想尽量详细说明其中的原理和过程. Makefile模板 首先给出一个本人在小项目中常用的Makefile模板,支持自动生成头文件依赖. CC = gcc CFLAGS = -Wall -O INCLUDEFLAGS = LDFLAGS = OBJS = seq.o TARGETS = test_seq .PHONY:all all : $(TARGETS) test_seq:test_seq.o $(OBJS) $(CC) -o…
Linux Makefile自动生成--config.h http://blog.csdn.net/spch2008/article/details/12510805…
  序     在linux下C或C++项目开发,Makefile是必备的力气,但是发现手写很麻烦. 在百度有个comake2工具,用于自动生成Makefile工具,而在外边本想找一个同类工具,但发现很难做到,只发现有个类似的智能生成工具autotools,但是操作比较麻烦,奔着“一人学习,大家共享”的原则,手动写了一个工具类,帮助自己和大家生成现成的c或者cpp框架. 代码比较简单,希望我们能一起改善下. git路径:https://github.com/chuanshanjia/ccpp/b…
手工编写依赖关系不仅工作量大而且极易出现遗漏,更新也很难及时,修改源或头文件后makefile可能忘记修改.为了解决这个问题,可以用gcc的-M选项自动生成目标文件和源文件的依赖关系.-M选项会把包含的系统头文件以及其所包含的其他系统头文件也找出来了,如果我们不需要输出系统头文件的依赖关系时,可以用-MM选项. 下面我们以一个简单的例子来说明如何自动生成依赖关系: exm/ main.c s.c s.h makefile文件内容如下: all:a src=$(wildcard *.c) obj:…
虽然以前对Makefile有个基本概念,但是真正到自己去写一个哪怕是简单的Makefile时也会遇到不少的麻烦.    现在我有如下文件 dList.h dList.c memory.c debug.c debug.h test.c aaron.h 其中包含关系如下:    aaron.h-->dList.h debug.h    dList.c-->aaron.h    debug.c-->aaron.h    test.c-->aaron.h    memory.c-->…
相信每个学习Linux的人都知道Makefile,这是一个很有用的东西,但是编写它是比较复杂,今天介绍一个它的自动生成工具,autotools的使用.很多GNULinux的的软件都是用它生成Makefile的,包括我们非常熟悉的Linux内核源代码. 1.准备: 需要工具 autoscan aclocal autoheader automake autoconf auto make 在终端敲入命令,哪个没有安装哪个,一般是第一个autoscan没有,其它的我用的Ubuntu10.04下全部都有…
automake/autoconf入门作为Linux下的程序开发人员,大家一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便.一般情况下,大家都是手工写一个简单Makefile,如果要想写出一个符合自由软件惯例的Makefile就不那么容易了.在本文中,将给大家介绍如何使用autoconf和automake两个工具来帮助我们自动地生成符合自由软件惯例的Makefile,这样就可以象常 见的GNU程序一样,只要使用"./configure","make&…
http://blog.csdn.net/pipisorry/article/details/51647073 编辑makefile文件CMakeLists.txt,使用cmake命令自动生成makefile文件. 一个示例 CMakeLists.txt: cmake_minimum_required(VERSION 2.8)project(bgs)set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++0x")set(CMAKE_C_FLA…
https://www.cnblogs.com/jrglinux/p/6964169.html 关键是如何写Makefile.am  其他的交给 自动工具完成 添加一个 很好的博客 学习下 https://www.cnblogs.com/lixinjie/p/a-answer-about-thread-safety-in-a-interview.html lesson 0 什么是Autotools Automake Autotools Cmake Scons 自动创建Makefile 大型项目很…
有main.c: #include <stdio.h> #include "command.h" int main(int argc, const char *argv[]) { printf("run in main\n"); ; } commad.h: #ifndef __COMMAND_H__ #define __COMMAND_H__ #define PI 3.14159 #endif 之前写的makefile都是使用下面这种形式的静态规则: O…
linux环境下,当项目工程很大的时候,编译的过程很复杂,所以需要使用make工具,自动进行编译安装,但是手写makefile文件比较复杂,所幸在GNU的计划中,设计出了一种叫做Autoconf/Automake的工具,用来自动生成makefile文件,为编译和安装程序提供了一个方便快捷的入口. 一.首先检查是否安装了autotools工具 使用which命令    aclocal    autoscan    autoconf    autoheader    automake…
使用automake等命令自动生成Makefile文件   Linux下编程时,为了方便编译,往往使用Makefile文件自动完成编译,但是Makefile文件本身的书写十分复杂,规则很多.好在Linux为我们提供了自动生成功能完善的Makefile文件的工具autoconf/automake.本文讲述如何使用它们生成Makefile文件.要用到的工具组主要包括autoconf,automake,perl语言环境和m4.   可以使用命令rpm -qa | grep command_name查看…
最近编译一个项目的程序时,二十几个源代码文件放在六个文件夹中,而且各个文件中头文件互相包含.以前写过编译这样组织的源码的makefile,所以这次也就直接写了. 确实因为各个文件间的头文件互相包含,造成在第一次写完后,make时出现了很多未定义.于是把各个文件的头文件重新检查一边,同时载makefile中尽量按照相对路径,把所有的头文件都包含进来.终于在忙活了三个小时后,一个可以在自己机器上编译的makefile写好了.(仅指在自己的机器上,因为有一个库文件使用的是我电脑上的绝对路径) 果然,在…
概述:autoconf/automake工具用于自动创建功能完善的Makefile文件,接下来简单介绍一下,如何使用上述工具 自动生成Makefile 前提:安装autoconf工具(ubuntu:sudo apt-get install autoconf)   一.建立测试文件   二.autoscan 复制configure.scan到configure.ac,并在configure.ac这个文件中,添加以下两行:   AM_INIT_AUTOMAKE(main,1.0) AC_CONFIG…
作为Linux 下的程序开发人员,大家一定都遇到过Makefile ,用make 命令来编译自己写的程序确实是很方便.一般情况下,大家都是手工写一个简单Makefile ,如果要想写出一个符合自由软件惯例的Makefile 就不那么容易了.在本文中,将给大家介绍如何使用autoconf 和automake 两个工具来帮助我们自动地生成符合自由软件惯例的Makefile ,这样就可以象常 见的GNU 程序一样,只要使用"./configure" ,"make" ,&q…
automake主要通过编辑Makefile.am来控制它的行为,下面就常用的三个Makefile.am配置做出说明. 1.1. autotools的工作原理 autotools最终是为了生成Makefile,为此,需要使用到autotools系列工具的如下几个命令: l autoscan l aclocal l autoheader l autoconf l automake 另外,还需要有两类输入文件:configure.in和Makefile.am.其中,configure.in是用来生成…
qmake的使用简介 下面是qmake的简单介绍和使用要领,更为详细的信息请参阅手册 qmake的介绍 手写Makefile是比较困难并且容易出错的,尤其是需要给不同的平台和编译器组合写几个Makefile.使用qmake,开发者创建一个简单的“项目”文件并且运行qmake生成适当的Makefile.qmake会注意所有的编译器和平台的依赖性,可以把开发者解放出来只关心他们的代码.Trolltech公司使用qmake作为Qt库和Qt所提供的工具的主要连编工具. qmake也注意了Qt的特殊需求,…
后面会介绍gcc获得源文件依赖的方法,gcc这个功能就是为make而存在的.我们采用gcc的-MM选项结合sed命令.使用sed进行替换的目的是为了在目标名前加上“objs/”前缀.gcc的-E选项,预处理.在生成依赖关系时,其实并不需要gcc编译源文件,只要预处理就可以获得依赖关系了.通过-E选项,可以避免生成依赖关系时gcc发出警告,以及提高依赖关系的生成效率. 现在,已经找到自动生成依赖关系的方法了,那么如何将其整合到我们complicated项目的Makefile中呢?自动生成的依赖信息…
原文  http://www.laruence.com/2009/11/18/1154.html 作为Linux下的程序开发人员,大家一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便.一般情况下,大家都是手工写一个简单Makefile,如果要想写出一个符合自由软件惯例的Makefile就不那么容易了. 在本文中,将给大家介绍如何使用autoconf和automake两个工具来帮助我们自动地生成符合自由软件惯例的 Makefile,这样就可以象常见的 GNU程序一样,只要…
作为Linux下的程序开发人员,大家一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便.一般情况下,大家都是手工写一个简单Makefile,如果要想写出一个符合自由软件惯例的Makefile就不那么容易了. 在本文中,将给大家介绍如何使用autoconf和automake两个工具来帮助我们自动地生成符合自由软件惯例的Makefile,这样就可以象常见的GNU程序一样,只要使用“./configure”,“make”,“make instal”就可以把程序安装到Linux系…
为了编译一个简单的源文件main.c,需要自动生成一个makefile,以下是步骤: 第一步:----------在/root/project/main目录下创建一个文件main.c,其内容如下:------------------------------------------------#include <stdio.h> int main(int argc, char** argv) {     printf("Hello, Auto Makefile!\n");  …
自动生成项目的Makefile文件 理论基础 跟我一起写 Makefile:   http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=408225 例解 autoconf 和 automake 生成 Makefile 文件:   http://www.ibm.com/developerworks/cn/linux/l-makefile/index.html 步骤 写好Makefile.am 运行 autoscan , 自动创建两个文件: a…
一.简介 Linux下的程序开发人员,一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便.一般情况下,大家都是手工写一个简单Makefile,如果要想写出一个符合自由软件惯例的Makefile就不那么容易了. 在本文中,将介绍如何使用autoconf和automake两个工具来帮助我们自动地生成符合自由软件惯例的Makefile,这样就可以象常见的GNU程序一样,只要使用“./configure”,“make”,“make instal”就可以把程序安装到linux系统中…
一个简单的执行程序的GNU automake自动生成Makefile的方法及案例 在GNU的世界里,存在Automake这样的工具进行自动生成Makefile文件,automake是由Perl语言编写的,必须与GNU autoconf一并使用,具体的生成过程请参看GNU automake的wikipedia中的右下角的图,地址如下:http://en.wikipedia.org/wiki/Automake,由此图可看到使用自动生成Makefile的工具使用的流程,步骤主要如下: autoscan…
目录 BASIS wildcard .PHONY 静态模式 常用自动变量 自动生成依赖(GCC) -M 参数 编写 Makefile Makefile 细节说明 其他 本文内容基于 GNU MAKE. BASIS 一些 makefile 的基础知识. wildcard 假设当前目录下有文件 a.cpp 和 b.cpp,定义: eg1=*.cpp eg2=$(wildcard *.cpp) 则 rm $(eg1) 的展开为 rm *.cpp,rm $(eg2) 的展开为 rm a.cpp b.cp…
转自:http://blog.csdn.net/longerzone/article/details/12705507 一.前言 本文将介绍如何使用autotools生成一个Makefile文件,并在此基础上使用dh-make和debuild生成一个可发布的deb程序包,这也是我们在Linux下开发应用程序以及想要发布应用程序需要做的. 无论是在Linux还是在Unix环境中,make都是一个非常重要的编译命令.不管是自己进行项目开发还是安装应用软件,我们都经常要用到make或 make ins…
为什么需要自动生成头文件依赖? 编译单个源文件时,需要获取文件中包含的头文件的信息,但是一般的Makefile不会在规则中明确写明文件依赖的头文件,所以单独修改头文件后,不会导致包含头文件的源文件重新编译.如果每次手动的添加头文件依赖,又会非常的繁琐,所以需要一种自动生成依赖的方法. 编译器中神奇的选项 使用$(CC)中的-M命令就可以完美的解决问题,因为-M选项可以将源文件依赖的所有头文件,自动解析出来. 例子:在当前路径下,编辑test.c和test.h文件,test.c如下所示,test.…
最近编译源文件发现当修改头文件后,make并不会自动把包含此头文件的所有源文件重新编译,而每次都是需要把对应的中间文件清除才能重新编译,非常的麻烦.因此需要make自动对源文件所依赖的头文件进行管理,即make自动生成依赖文件.鉴于本人的刚开始写的博客,很多方面经验不足,比如如何介绍我所用到的知识等,现在只是对我在过程中遇到的问题进行记录,相关的知识可以查看gnu make中文文档,上网等等. 遇到的问题记录如下:1.make在生成依赖文件后并不正确:原因是生成的依赖文件中的目标文件(.d与.o…
EasyGoServer 作者:林冠宏 / 指尖下的幽灵 掘金:https://juejin.im/user/587f0dfe128fe100570ce2d8 博客:http://www.cnblogs.com/linguanh/ GitHub : https://github.com/af913337456/ 联系方式 / Contact:913337456@qq.com EasyGoServer ---- 概述 ---- 脚本介绍 -------- Linux -------- Window…
准备源文件如下: /*test.c*/ #include <stdio.h>#include "phello.h"#include "pword.h"intmain (){  phello ();  pword ();  return 0;} /*phello.c*/ #include<stdio.h>#include "phello.h"intphello (){  printf ("hello\n"…