Linux compile linker loader
文章平均质量分 52
WangMark
这个作者很懒,什么都没留下…
展开
-
运行过程中链接动态链接库与编译过程中链接动态库的区别
我们调用动态链接库有两种方法:一种是编译的时候,指明所依赖的动态链接库,这样loader可以在程序启动的时候,来所有的动态链接映射到内存中;一种是在运行过程中,通过dlopen和dlfree的方式加载动态链接库,动态将动态链接库加载到内存中。这两种方式,从编程角度来讲,第一种是最方便的,效率上影响也不大,在内存使用上有些差别。第一种方式,一个库的代码,只要运行过一次,便会占用物理内转载 2014-07-29 10:03:58 · 3226 阅读 · 0 评论 -
linux程序的加载,内存占用
数据部分占用内存,那么我们写的程序是不是也占用内存呢?在linux中,程序的加载,涉及到两个工具,linker 和loader。Linker主要涉及动态链接库的使用,loader主要涉及软件的加载。exec执行一个程序elf为现在非常流行的可执行文件的格式,它为程序运行划分了两个段,一个段是可以执行的代码段,它是只读,可执行;另一个段是数据段,它是可读写,不能执行。loader会启转载 2014-07-29 09:59:51 · 1137 阅读 · 0 评论 -
Makefile的依赖自动生成 tom tromey
http://www.360doc.com/content/12/1009/23/532901_240546175.shtml转载 2014-08-08 14:00:18 · 373 阅读 · 0 评论 -
makefile详解 自动生成依赖性
自动生成依赖性 在Makefile中,我们的依赖关系可能会需要包含一系列的头文件,比如,如果我们的main.c中有一句“#i nclude "defs.h"”,那么我们的依赖关系应该是: main.o : main.c defs.h 但是,如果是一个比较大型的工程,你必需清楚哪些C文件包含了哪些头文件,并且,你在加入或删除头文件时,也需要小心地修改Mak转载 2014-08-08 10:26:42 · 779 阅读 · 0 评论 -
Makefile自动依赖
Makefile生成自动依赖的方法有两种:1. 将所有.o文件的依赖关系写入单独文件,然后在Makefile中调用该文件2. 每个.c文件对应一个.d文件,将依赖关系写入.d文件中 一、对于第一种方法,Makefile的写法如下:#file startCC = gccSRCS := $(wildcard *.c)OBJS := $(patsubst转载 2014-08-08 10:36:06 · 519 阅读 · 0 评论 -
GCC 与 Makefile
一个简单的例子:ab.out : a.o b.o g++ -o ab.out o/a.o o/b.oa.o : a.cpp g++ -c a.cpp -o o/a.ob.o : b.cpp g++ -c b.cpp -o o/b.oclean: rm -f o/a.o o/b.o Linux下动态链接库默认后缀名是".so",静态链接转载 2014-08-08 10:40:19 · 602 阅读 · 0 评论 -
[C/C++] 显示各种C/C++编译器的预定义宏(C11标准、C++11标准、VC、BCB、Intel、GCC)
http://www.cnblogs.com/zyl910/archive/2012/08/02/printmacro.html转载 2014-09-15 16:05:41 · 1003 阅读 · 0 评论