makefile的前世今生---by 香蕉麦乐迪

2023-12-25 02:30

本文主要是介绍makefile的前世今生---by 香蕉麦乐迪,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一:基本原理

1、file命令可以查看文件的类型:

比如file 111.jpg

111.jpg: JPGE image data, JFIF standard 1.02

2、编译的过程

以c语言为例,以文本文件编写的源代码,会被gcc编译成2进制的可执行文件;中间有一步,先会生成.o文件(目标文件),然后将.o文件与我们调用的函数库链接,最后生成可执行文件;

3、函数库:动态函数库和静态函数库

动态函数库的执行过程:


从外部动态函数库的执行过程可以发现,动态函数库的优点是源程序生成的可执行文件会小很多,而且函数库升级方便;

在linux中静态函数库后缀.a,动态函数库后缀.so;

存放的路径一般都在/lib /usr/lib中;

使用ldconfig命令可以将指定的函数库加载到内存中,这样可以加快常用的动态函数库的速度;

ldconfig的语法如下:

ldconfig [-f  conf_file]  [-C cache]

ldconfig [-p]

简单解释读者就会明白:我们直接执行ldconfig,ldconfig会查看/etc/ld.so.conf文件,该文件中可以添加目录比如/usr/local/lib  这样ldconfig命令会将该目录下的.so文件加

这篇关于makefile的前世今生---by 香蕉麦乐迪的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/533973

相关文章

Makefile简明使用教程

文章目录 规则makefile文件的基本语法:加在命令前的特殊符号:.PHONY伪目标: Makefilev1 直观写法v2 加上中间过程v3 伪目标v4 变量 make 选项-f-n-C Make 是一种流行的构建工具,常用于将源代码转换成可执行文件或者其他形式的输出文件(如库文件、文档等)。Make 可以自动化地执行编译、链接等一系列操作。 规则 makefile文件

ja-netfilter的前世今生和非对称加密的欺骗原理

文章目录 ja-netfilter起源官网插件插件配置文件插件的综合应用更多用法 非对称加密欺骗原理非对称加密和数字证书激活过程和欺骗手段分析代码示例第一步:生成自签名证书脚本第二步:使用自签名证书对产品激活信息进行签名 样例数据样例激活码(注:用于代码演示,直接粘贴到JetBrains 家 IDE 中无法完成激活!不用试,肯定提示无效,无法激活!!)样例power.conf(配合ja-ne

Anti-alias的前世今生

原文: http://www.cnblogs.com/gongminmin/archive/2011/05/16/2047506.html Anti-alias,简称AA,在图形学中广泛地用于提升渲染质量。经过几十年的发展,AA也从离线渲染逐步普及到了实时渲染的领域。本系列文章将总结一下在实时渲染中使用的AA方法的前世和今生。本片集中讨论硬件提供的AA方法。 图1. 一个像素内部的采样

Kernel 中MakeFile 使用if条件编译

有时需要通过if  else来选择编译哪个驱动,单纯的obj-$(CONFIG_)就不是很方便,下面提供两种参考案例: 案例一: 来源:drivers/char/tpm/Makefileifdef CONFIG_ACPItpm-y += tpm_eventlog.o tpm_acpi.oelseifdef CONFIG_TCG_IBMVTPMtpm-y += tpm_eventlog.o

Makefile问答之02 预处理器与宏

GCC Makefile中,怎样设定预处理器名称 在 GCC 的 Makefile 中,预处理器(preprocessor)的名称通常是 cpp(C PreProcessor),但在实际的 Makefile 中,我们一般是通过 gcc 命令来调用预处理器,而不是直接调用 cpp。不过,你可以通过设置 CPP 变量来显式指定预处理器名称和选项。以下是如何在 Makefile 中进行设置和使用的

如何在linux下写makefile

Windows下用集成开发环境(IDE)开发程序时不会涉及到编译、链接的步骤,集成开发环境已经把这些工作给你集成好了,你要做的就是根据语言的语法来编写代码。所以Windows下开发程序对makefile会有点生疏。         makefile的作用也是把你编写好之后的源文件进行编译与链接,只是它这个过程需要你自己去指定编译与链接的文件。 makefile的基本格式如下: tar

Makefile函数

定义$(函数名 参数)  或  ${函数名 参数} 例如: $(wildcard PATTERN) wildcard函数作用是列出所有PATTERN的文件 ,这里该参数可以是用通配符 例如*.c,就代表列出所有以.c结尾的文件。 $(patsubst <pattern>,<replacement>,<next>) patsubst函数作用是查找next中的单词,是否满足pattern的模式

记录下Makefile

把Makefile记录下,以后别忘了。 #CC = aarch64-linux-gnu-gcc#AS = aarch64-linux-gnu-as#AR = aarch64-linux-gnu-arCC = gccAS = asAR = arPROGRAMS =mainCUR_DIR = $(shell pwd)SRCS = $(CUR_DIR)/srcINCS = $(CUR_D

Linux工程管理文件Makefile命令与变量-基础篇

1.Makefile命令 在一个规则中,除了目标和目标依赖外,还有一个重要的部分:命令。 命令一般由shell命令(echo、ls)和编译器的一些工具(gcc、ld、ar、objcopy等)组成,使用tab键缩进。 .PHONY: cleana.out: hello.c echo "start compiling..." gcc -o a.out hello.c echo

Go语言的前世今生与未来展望

Go语言的起源与发展 Go语言诞生于2009年底,是谷歌内部的一个实验性项目。它从一开始就受到C、Pascal、Alef和Oberon等多种编程语言的启发,由Robert Griesemer、Ken Thompson和Rob Pike三位资深程序员共同打造。作为一门现代的通用编程语言,Go迅速获得了广泛关注,其开放源码的特性更是吸引了全球开发者的参与。 Go的设计理念与应用场景 Go的设计初