首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux中的configure,make,make install到底在做些什么

有时候我就在想,这个configure,make ,make install是什么意思呢,configure是测试存在的特性,然后make开始编译,make install生成相应的可执行文件。...Hello world,a new test 我们看看构建GNU程序中如何按照规范来模拟这个过程 我们创建一个文件configure.ac,里面是一些宏,是接下俩的autoconf来处理的需要的,然后交给...然后就是Makefile的文件,我们设定名字为Makefile.am,这部分的内容和上面的配置是密切相关的。...默认等级是gnu。此处AUTOMAKE_OPTIONS使用的是foreign,表示只检测必要的文件。...bin_PROGRAMS定义了要产生的执行文件名,这里我们定义为helloworld file_SOURCES定义file这个执行程序的依赖文件,其中“file_SOURCES”中的前部分“file”要改写成可执行文件名

3.3K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Linux中的configure,make,make install到底在做些什么

    有时候我就在想,这个configure,make ,make install是什么意思呢,configure是测试存在的特性,然后make开始编译,make install生成相应的可执行文件。...Hello world,a new test 我们看看构建GNU程序中如何按照规范来模拟这个过程 我们创建一个文件configure.ac,里面是一些宏,是接下俩的autoconf来处理的需要的,然后交给...然后就是Makefile的文件,我们设定名字为Makefile.am,这部分的内容和上面的配置是密切相关的。...默认等级是gnu。此处AUTOMAKE_OPTIONS使用的是foreign,表示只检测必要的文件。...bin_PROGRAMS定义了要产生的执行文件名,这里我们定义为helloworld file_SOURCES定义file这个执行程序的依赖文件,其中“file_SOURCES”中的前部分“file”要改写成可执行文件名

    3.9K30

    Go中make和new的区别

    在 Go 语言中,make和new都用于分配内存,但它们有以下区别:一、功能不同 make用于初始化切片(slice)、映射(map)和通道(channel)这三种特定的数据结构,并返回一个初始化后的对象...它可以用于任何类型,但主要用于值类型(如结构体)和基本数据类型的内存分配。 二、返回值类型不同 make返回的是初始化后的特定数据结构本身,而不是指针。...例如,make([]int, 5)返回一个长度为 5 的切片,而不是指向切片的指针。 new返回的是指向新分配类型零值的指针。例如,new(int)返回一个指向整数类型零值的指针。...三、适用场景不同 make适用于切片、映射和通道的初始化,因为这些数据结构需要特定的内部初始化操作才能正常使用。...四、初始化程度不同 make会对特定的数据结构进行完整的初始化,包括设置长度、容量(对于切片和通道)、内部的哈希表(对于映射)等,使其可以立即使用。

    8100

    Golang中make和new的区别

    对于不同的数据类型,零值的意义是完全不一样的。...比如,对于bool类型,零值为false;int的零值为0;string的零值是空字符串 make: func make(t Type, size ...IntegerType) Type 同样用于内存分配...,但和new不同,make用于channel,slice和map的分配,而且返回的类型就是这三个类型本身,而不是它们的指针,因为这三种类型本身就是引用类型,所以就没必要返回他们的指针了。...具体而言,有如下几种用法: (1)make(map[string]string):即缺少长度的参数,只传类型,这种用法只能用在类型为map或chan的场景 (2)make([]int, 2):指定了长度...,例如make([]int, 2)返回的是一个长度为2的slice (3)make([]int, 2, 4):既指定了长度len为2,又指定了cap为4 注意:由于这三种类型都是引用类型,所以必须得初始化

    73730

    golang中make 和 new 的区别

    golang中make 和 new 的区别 介绍 new new 是一个内建函数,用于分配一块内存并返回指向该内存的指针。 它会为该类型的零值分配内存,并返回指向该类型的指针。...make 只能用于切片、映射和通道的创建,不适用于其他类型。.../ 从通道中接收数据 value := <-ch fmt.Println("Value received from channel:", value) } 运行结果 区别 适用类型: new...make 仅适用于切片、映射和通道的创建,返回的是对应引用类型的实例。 返回类型: new 返回的是指向类型的指针。 make 返回的是对应引用类型的实例,而不是指针。...初始化: new 分配的内存会被清零,返回的是该类型的零值的指针。 make 返回的是被初始化过的引用类型的实例,如切片、映射和通道等。

    5200

    【数据相关】目标检测中的数据标注及格式转换代码

    在目标检测中有很多常用的数据标注工具,如LabelImg、Labelme等等,经过标注生成的格式各不相同,但基本符合几大数据集的标注格式。...本文用来介绍目标检测中常见的几种数据格式,以及格式之间的相互转换代码。...1、数据格式 我之前整理了图像分类和目标检测领域常用的数据集,链接如下: 下图也给出了常用的数据集,本文主要关注PASCAL VOC、ImageNet和COCO的标注形式,其中PASCAL VOC和ImageNet...PASCAL VOC目标检测任务中所使用的的数据集和标注格式为xml,每张图片对应一个xml格式的标注文件。...以一个xml文件为例: xml文件中给出了:图片名称、图像尺寸、标注矩形框坐标、目标物类别、遮挡程度和辨别难度等信息。

    2.2K20

    【makefile】

    也就是Makefile中最核心的内容。 例如,假设有一个C源文件test.c,该源文件包含有自定义的头文件test.h,则目标文件test.o明确依赖于两个源文件:test.c和test.h。...这种依赖关系在多源文件的程序编译中尤其重要,通过这种依赖关系的定义,make工具可避免许多不必要的编译工作。...一个makefile文件中可定义多个目标,利用make target命令可指定要编译的目标,如果不指定目标,则使用第一个目标。...以下给出了一些主要的预定义变量,除这些变量外,GNU make 还将所有的环境变量作为自己的预定义变量。 $@ ——表示规则中的目标文件集。...2.2隐含规则 GNU make 包含有一些内置的或隐含的规则,这些规则定义了如何从不同的依赖文件建立特定类型的目标。

    2K00

    Makfile文件的编写

    Makfile文件的编写 不定期更新 make和Makefile 以下来自百度百科 make: make是一条计算机指令,是在安装有GNU Make的计算机上的可执行指令。...有时make又指GNU Make,GNU Make 是一个用来控制可执行文件和其他一些从源文件来的非源代码文件版本的软件。...Makefile: 一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作...Makefile编写 以下是本人自己比较喜欢用的Makefile的使用方式的总结,一般为单个项目产生单个可执行文件,一般是控制台程序或者opencv相关 简单的多文件的C/C++控制台程序 文件目录是...三、声明依赖的目标文件生成 这部分是声明所有依赖的文件的生成方式,使用了make的默认生成规则,语法是 目标文件: 依赖的头文件和源文件 这部分对应的内容是 main.o : main.c stack.o

    70030

    编程开发中的Compile、Make、Build详细对比

    针对Java的开发工具,一般都有Compile、Make和Build三个菜单项,完成的功能的都差不多,但是又有区别。...编译,是将源代码转换为可执行代码,需指定源文件和编译输出的文件路径(输出目录)。...Java的编译会将: java文件编译为class文件 非java文件(一般为资源文件,如图片、xml、txt、poperties等)原封不动复制到编译输出目录,并保持源文件夹的目录层次关系 在Java...的集成开发环境中,如IDEA,有三种与编译相关选项Compile、Make、Build,最基本功能都是完成编译过程。...但又有很大区别: Compile:只编译选定的目标,不管之前是否已编译过 Make:编译选定的目标,但Make只编译上次编译变化过的文件,减少重复劳动,节省时间 Build:对整个工程进行彻底重新编译

    1K50

    跟我一起写 Makefile(一)

    当然,不同产商的make各不相同,也有不同的语法,但其本质都是在“文件依赖性”上做文章,这里,我仅对GNU的make进行讲述,我的环境是RedHat Linux 8.0,make的版本是3.80。...在这篇文档中,将以C/C++的源码作为我们基础,所以必然涉及一些关于C/C++的编译的知识,相关于这方面的内容,还请各位查看相关的编译器的文档。这里所默认的编译器是UNIX下的GCC和CC。...链接器并不管函数所在的源文件,只管函数的中间目标文件(Object File),在大多数时候,由于源文件太多,编译生成的中间目标文件太多,而在链接时需要明显地指出中间目标文件名,这对于编译很不方便,所以...你需要指定函数的Object File. 好,言归正传,GNU的make有许多的内容,闲言少叙,还是让我们开始吧。...这个示例来源于GNU的make使用手册,在这个示例中,我们的工程有8个C文件,和3个头文件,我们要写一个Makefile来告诉make命令如何编译和链接这几个文件。

    28510

    【C++】基础:代码编译与构建工具介绍

    makefile相当于用户将要执行的一系列命令,make根据makefile中的命令对相应的源文件进行编译和链接。...makefile文件在github源码安装程序中很常见,下载一个源码包,通常在readme中会有这样的一句: make all make install make all即编译所有,当然这个源码包中必须有...makefile文件才行,执行make all这个命令后make会根据makefile中的命令进行编译。...如果要自己编译很多源文件的时候就需要cmake工具,可以更加方便地生成makefile文件给make用。cmake还可以跨平台生成对应平台可用的makefile,无需自己根据每个平台的不同特性修改。...,其中包含项目名称、源文件列表、目标类型、依赖项等信息。

    27210

    linux下make命令的使用方法

    Make 如何工作的 对于不知道背后机理的人来说,make 命令像命令行参数一样接收目标。这些目标通常存放在以 “Makefile” 来命名的特殊文件中,同时文件也包含与目标相对应的操作。...现在,假设你对某个源文件进行了修改,你再次执行 make 命令,它将只编译与该源文件相关的目标文件,因此,编译完最终的可执行文件节省了大量的时间。...Make 命令实例 下面是本文所使用的测试环境: OS —— Ubunut 13.04Shell —— Bash 4.2.45Application —— GNU Make 3.81 下面是工程的内容:...一个简单的例子 为了编译整个工程,你可以简单的使用 make 或者在 make 命令后带上目标 all。...make 命令不会编译任何文件,然而 make -B 会强制编译所有的目标文件以及最终的执行文件。

    3.6K20

    Ubuntu下如何安装并使用Objective-C

    $(GNUSTEP_MAKEFILES)/tool.make   由于我们在源代码中使用了C11标准中才引入的Unicode前缀字面量表达式——u'加',表示一个UTF-16字符...,因此我们在GNUmakefile中也加入了-std=gnu11这个编译选项来使得编译器使用最新的C11标准与GNU规范语法扩展。...而下面的TOOL_NAME指定了make之后最终的目标可执行文件名。这里命名为test。 完了之后,如果我们之前已经执行过GNUstep.sh,那么可以直接敲make,然后回车。...,我这里的做法是将汇编文件单独编译成.o目标文件,然后再跟其它makefile编译好的目标文件进行连接。...其余一些可用的make变量见如下链接: http://www.gnu.org/software/gnustep/resources/documentation/Developer/Gui/ProgrammingManual

    88500

    可移植的 Makefile 教程

    在我写 Makefile 的头 10 年里,我养成了一个非常不好的习惯 -- 完全严格使用 GNU Make 的扩展名。...过去我并不知道, GNU Make 与 POSIX 所保证的可移植特性之间的区别与联系。...我不得不指定安装 GNU Make,然后在心里记住不要使用系统自带的 make ,而是使用 gmake 这样的工具来调用它。...规则也需要指定 Shell 命令,这些 Shell 命令会被用于从先决条件中生成目标。 如果你打算创建示例中的源文件,并调用 make, 你会发现它实际上已经知道了它该如何构建目标文件。...在一个规则中,命令会随即跟在目标或先决条件那一行的后面。每个命令行必须以一个 tab 字符开头。如果你的编辑器不能进行相关配置的话,可能会非常麻烦。

    1.4K10
    领券