
Linux/make
imxiangzi
这个作者很懒,什么都没留下…
展开
-
第三章——目标文件里有什么
编译器编译源代码后生成的文件叫做目标文件,那么目标文件里面到底存放的是什么呢?或者我们的源代码在经过编译以后是怎么存储的? 目标文件从结构上讲,它是已经编译后的可执行文件格式,只是还没有经过链接的过程,其中可能有些符号或有些地址还没有被调整。其实它本身就是按照可执行文件格式存储的,只是跟真正的可执行文件在结构上稍有不同。 可执行文件格式涵盖了程序的编译、链接、装载和执行的各个方转载 2015-07-12 19:49:51 · 789 阅读 · 0 评论 -
Makefile中头文件在依赖关系中作用
摘于:http://bbs.youkuaiyun.com/topics/120024677(1)在makefile的依赖关系中用不用体现.h头文件?(2)如果在依赖关系中要体现.h头文件,应该体现到什么层次?==============================(1)在makefile的依赖关系中用不用体现.h头文件?==============================转载 2015-07-13 20:02:33 · 1398 阅读 · 0 评论 -
如何自己编写Makefile
相信很多朋友都有过这样的经历,看着开源项目中好几页的makefile文件,不知所云。在日常学习和工作中,也有意无意的去回避makefile,能改就不写,能用ide就用ide。其实makefile并没有想象的那么难写,只要你明白了其中的原理,自己实践几次。你也可以自己写makefile,让别人对你头来羡慕的目光。 下面本人介绍一下自己的学习成果,初学阶段,欢迎大家多多指正。 简单转载 2015-07-14 20:49:22 · 502 阅读 · 0 评论 -
调试makefile—查看其中的变量值
操作系统:ubuntu10.04在编译uboot,linux kernel的时候,都需要用到makefile,那么makefile的执行流程,其中的各个变量的值该怎么获取呢?执行命令:make -p > xx在对应的路径 下,执行makefile, -p, --print-data-base Print make's internal database.即转载 2015-07-13 22:57:03 · 4138 阅读 · 0 评论 -
GNU Autotools的使用方法
手工写Makefile是一件很有趣的事情,对于比较大型的项目,如果有工具可以代劳,自然是一件好事。在Linux系统开发环境中,GNU Autotools 无疑就充当了这个重要角色。(在Windows系统的开发环境中,IDE工具,诸如Visual Studio,来管理项目也很方便。) 本文以一个简单项目为例子,来讲述GNU Autotools的一列工具及其命令的用法。aut转载 2015-10-05 11:36:13 · 613 阅读 · 0 评论 -
学习工具篇 - eclipse 中使用autotools plugins
很多时候我们都是在使用IDE来构建自己的小项目,使用IDE,在学习中足够了。但是渐渐的发现使用IDE已经满足不了自己了,发现自己处于两难的境地。为什么这么说呢? 首先,最主要的出发点是想要去自己动手构建一个项目。 其次,去学习如何写makefile吗? 第三,有没有其他的选择呢?学习makefile,是根本上出转载 2015-10-05 11:34:43 · 1316 阅读 · 0 评论 -
Makefile文件简单示例一:测试验证小程序的管理
在开发过程中,总是会偶尔遇到一些小问题不太确定,一般都是通过编写一个简单的小程序来测试验证这些小问题的答案,解除疑惑,也比理论答案更让人放心。只是随着时间积累,验证小程序数量越来越多,每次在shell上敲编译命令还是比较头疼的一件事,容易混乱而且还考验记忆、效率低下。make和makefile文件是项目构建的有效工具,在一个完整的项目开发中基本都会用到它们来实现自动构建,以提高效率和可靠性转载 2015-10-05 21:35:15 · 1791 阅读 · 0 评论 -
在Makefile中无缝连接字符串
今天在写Makefile时,忽然遇到了一个问题,如何把几个字符串无缝的连接起来?我自然而然的想到了使用 +=。比如:?1234567891011121314151617laolang@laolang:转载 2015-10-05 21:53:18 · 7779 阅读 · 0 评论 -
Makefile和shell的区别:echo和@echo
今天发现一个很基础,但我又确定的知识点,记录如下: 经常在Makefile的命令段发现@echo “print message”,和echo “print message”。 网上查了下是说echo加了@,命令会正常执行,但命令本身不回显(默认是显示命令到标准输出);未加@,则echo 后的命令体会执行也会回显。1、 于是自己写了个shell脚本验证:转载 2015-10-05 22:27:09 · 31425 阅读 · 2 评论 -
如何调试makefile变量
六、七年前写过一篇《跟我一起写Makefile》,直到今天,还有一些朋友问我一些Makefile的问题,老实说,我有一段时间没有用Makefile了,生疏了。回顾,这几年来大家问题我的问题,其实很多时候是makefile的调试问题。所以,就像我在之前的那篇关于GDB的技巧的文章中做的一样,在这里向大家介绍一个小小的调试变量的技巧。相信一定对你有用。对于Makefile中的各种变量,可能是我转载 2015-10-05 21:23:38 · 409 阅读 · 0 评论 -
8.7.1 makefile实例——项目中的总makefile
《Linux C程序设计王者归来》第8章构建makefile文件,makefile相当于一种脚本编程语言,用户在编写makefile的过程中可以使用变量、控制结构语句和函数等一般编程语言的特性,同时也可以执行shell指令。makefile诞生的本质目的是实现自动化编译,因此makefile区别于其他编程语言的最大特点是,其执行是由所编译文件的依赖关系驱动的。本章将说细介绍编写makefile的方转载 2015-10-05 21:36:17 · 730 阅读 · 0 评论 -
Makefile中使用Shell
http://blog.youkuaiyun.com/zdl1016/article/details/6448989http://blog.youkuaiyun.com/absurd/article/details/636418Makefile与Shell的问题 大概只要知道Makefile的人,都知道Makefile可以调用Shell脚本。但是在实际使用时,并不那么简单,一些模棱两可的地转载 2015-10-05 22:35:03 · 739 阅读 · 0 评论 -
makefile后缀规则
linux下采用c++编写程序后编译成可执行文件时,敲打的命令太多,尤其是对于同时编译很多文件时尤其不便。采用后缀规则可以节省很多功夫,下面是一个简略的makefile文件,只需敲入make 源码文件名.out即可完成编译,继续学习中。CPP=g++.SUFFIXES:.out .cpp.cpp.out:$(CPP) -o $@ $F转载 2015-07-13 20:03:47 · 3368 阅读 · 0 评论 -
Makefile总结
总结下边的内容 :文件中的第一个target是最终目标命令列表中的每条命令必须以 Tab 开头如果 prerequistes 中如果有一个以上的文件比 target 文件更新的话,command 所定义的命令就会执行,这就是 Makefile 规则如果这个工程的头文件改变了,那么我们需要编译引用了这个头文件的C文件,并链接目标程序。make clean 执行删除文件和所有中间文件。这里要说转载 2015-07-13 20:00:41 · 582 阅读 · 0 评论 -
Makefile 中:=/ ?=/ +=/ =的区别
= 是最基本的赋值(用到的时候再赋值,展开):= 是覆盖之前的值(立即展开)?= 是如果没有被赋值过就赋予等号后面的值+= 是添加等号后面的值例子:1、“=” make会将整个makefile展开后,再决定变量的值。也就是说,变量的值将会是整个makefile中最后被指定的值。看例子: x = foo转载 2015-07-13 23:49:35 · 515 阅读 · 0 评论 -
目标文件和可执行文件的区别
可执行文件也是一种目标文件。UNIX环境下主要有三种类型的目标文件:可重定位文件 其中包含有适合于其它目标文件链接来创建一个可执行的或者共享的目标文件的代码和数据。共享的目标文件 静态链接库和动态链接库,在生成可执行程序和其他共享代码库的时候,它们的链接方式不同。可执行文件 它包含了一个可以被操作系统创建一个进程来执行之的文件。 汇编程序生成转载 2015-07-12 19:50:37 · 3185 阅读 · 0 评论 -
从简入难makefile文件编写,Linux C++编程,简单vi命令
1.一个最基本的C++程序2.第二个c++程序3.第一个入门级别的简单的makefile4.在makefile中定义变量。5.编写makefile的依赖如果start:标识后面的某个.o没有,则重新编译没有编译的那个文件6.最终的makefile文件转载 2015-07-12 00:07:55 · 1256 阅读 · 1 评论 -
解析目标文件
最近在看《程序员的自我修养》,颇有体会,故化繁为简,整理书中部分内容,作为学习笔记。PC平台上流行的可执行文件格式主要是windows下的PE(Portable Executable)和Linux下的ELF(Executable Linkable Format),他们都是COFF(common file format)格式的变种。可执行文件(windows下.exe和Linux下的ELF可转载 2015-07-12 19:49:01 · 743 阅读 · 0 评论 -
经典makefile例子
原文地址:经典makefile例子 作者:txgc_wm这个帖子是我在csdn上花了10分下载下来 的一个包,里面就这么多东西,那个上传者是他妈的黑。。。。不过我把它共享到这里,不过为了尊重人的劳动成果,我还是贴出人家的下载地 址:http://download.youkuaiyun.com/source/949149,这里面的内容很经典,但是我水平低,很多看不懂,咳,不过,先占 着。呵呵。。。。转载 2015-07-12 20:22:49 · 567 阅读 · 0 评论 -
makefile中关于all和.PHONY .cpp.o
转自:http://blog.163.com/benben_long/blog/static/199458243201110230292490/http://blog.youkuaiyun.com/wangxmin2005/article/details/8082409请编写一个makefile同时编译、链接下面两个程序:main1.c:#includeint ma转载 2015-07-12 20:41:43 · 4125 阅读 · 0 评论 -
跟我一起写 Makefile(一)
跟我一起写 Makefile 陈皓概述——什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软转载 2015-07-12 00:13:58 · 625 阅读 · 0 评论 -
makefile样本
# source files. SRC = file1.cpp file2.cpp file3.cpp OBJ = $(SRC:.cpp=.o) OUT = ../libutils.a bak# include directories INCLUDES = -I. -I../include/ -I/usr/local/include # C++ comp转载 2015-07-12 20:32:43 · 499 阅读 · 0 评论 -
Makefile经典教程(掌握这些足够)
makefile很重要 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写make转载 2015-07-12 00:40:20 · 1049 阅读 · 0 评论 -
linux下几种目标文件的分析
本文中用到的命令:gcc -c addvec.c 生成可重定位目标文件addvec.oreadelf addvec.o -a读取可重定位目标文件addvec.ogcc -O2 -c main.c生成可重定位目标文件main.ogcc -static -o vecadd addvec.o main.o链接目标文件addvec.o,生成可执行文件vecadd转载 2015-07-12 19:46:52 · 4314 阅读 · 0 评论 -
如何调试makefile变量
六、七年前写过一篇《跟我一起写Makefile》,直到今天,还有一些朋友问我一些Makefile的问题,老实说,我有一段时间没有用Makefile了,生疏了。回顾,这几年来大家问题我的问题,其实很多时候是makefile的调试问题。所以,就像我在之前的那篇关于GDB的技巧的文章中做的一样,在这里向大家介绍一个小小的调试变量的技巧。相信一定对你有用。对于Makefile中的各种变量,可能是我转载 2015-07-13 22:54:10 · 736 阅读 · 0 评论 -
makefile中的shell语法
在Makefile中写shell代码有点诡异,和不同的shell语法不太一样,如果不了解,看Makefile会莫名其妙。下面总结了一些。Makefile本质上来讲也是shell脚本,即每条command都是shell进程,运行完shell进程都会退出假如/root#test:gcc -c main.c -o main.o gcc -c a.c -o a.o转载 2015-10-05 22:35:58 · 629 阅读 · 0 评论