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

为什么automake要在我的目标文件前加上包名?

automake是一个用于生成Makefile的工具,它是GNU Autotools工具集中的一部分。在使用automake生成Makefile时,需要在目标文件前加上包名,这是因为automake遵循了一种约定俗成的命名规范。

这种命名规范的目的是为了避免不同软件包中的目标文件之间的命名冲突。在一个大型软件项目中,可能会有多个软件包,每个软件包都有自己的目标文件。如果不加包名前缀,那么不同软件包中的目标文件可能会有相同的文件名,这样就会导致冲突。

通过在目标文件前加上包名,可以确保每个目标文件的命名是唯一的,避免了命名冲突的问题。这样,在编译和链接过程中,就可以准确地找到每个软件包中的目标文件,保证了软件包的独立性和可靠性。

总结起来,automake要求在目标文件前加上包名是为了避免不同软件包中的目标文件命名冲突,确保软件包的独立性和可靠性。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

php autoconf 配置,automake,autoconf使用详解

大家好,又见面了,是你们朋友全栈君。...Makefile.am中定义 宏和目标,会指导automake生成指定 代码.例如,宏bin_PROGRAMS将导致编译和连接 目标被生成. 5.运行automake: $ automake –add-missing...有规定,但是 你必须在 所有宏 最前面和最后面分别加上AC_INIT宏和AC_OUTPUT宏.... 选项.在 执行automake时,它会检查目录下是 否存在 标准 GNU软件中应具备各种文件,例如AUTHORS.ChangeLog.NEWS等文件....我们将其设置成foreign时,automake会改用一般软件 标准来检查. bin_PROGRAMS 这个是 指定我们所要产生 可执行文件 文件.如果你要产生多个可执行文件, 那么在各个名字间用空格隔开

72200

使用autoconf生成Makefile并编译工程步骤

AC_OUTPUT 前缀AC指的是 AutoConf AC_PREREQ不用管 AC_INIT里面填【】【版本】【BUG提交地址 也就是你邮箱】 AC_CONFIG_SRCDIR里填源文件路径下任意一个文件....o文件都会放在工程根目录下; bin_PROGRAMS 后面的名字是 生成可执行二进制文件 可以有多个 bin_PROGRAMS ,但每个 bin_PROGRAMS 都需要有相对应 xxx_SOURCES...用autoheader生成config.h.in autoheader 用automake生成Makefile.in,需要加上 –add-missing使其自动加上缺省文件 automake --add-missing...别人下载了我们源码之后怎么编译链接可执行文件呢?或者说我们怎么编译链接我们可执行文件呢? 以下是源码安装一般步骤,也是我们编译链接步骤 首先生成Makefile ....如果很不幸你工程比较大,有同名文件的话,那就可能出现很严重后果了,所以这句话建议加上

1.1K30

Linux下automake工具使用(自动构建Makefile文件)

下面将介绍如何利用 GNU Autoconf 及 Automake 这两套工具来协助我们自动产生 Makefile文件,并且让开发出来软件可以像大多数源码那样,只需"....如果系统没有安装Automake工具,红帽子系统可以挂载光盘找到安装进行安装 如果是ubuntu系统可以通过命令在线下载工具: sudo apt-get install autoconf automake...等级,它只检测必须文件 第二项:生成可执行文件 第三项:生成可执行文件所需原始文件,有多个文件时用空格隔开。...约定俗成,所有的configure脚本都把脚本文件起为configure,一般来讲都是shell脚本,根据所在系统环境生成makefile文件。...,用于引用.o 等一些编译出来目标文件 $(prefix) 定义了软件安装路径 1) automake标准安装路径 默认安装路径为:$(prefix) = /usr/local,可以通过.

6.8K31

自动生成Makefile全过程详解

Makefile.am中定义宏和目标,会指导automake生成指定代码。例如,宏bin_PROGRAMS将导致编译和连接目标被生成。...autoscan可以用目录做为参数,但如果你不使用参数的话,那么 autoscan将认为使用是当前目录。autoscan将扫描你所指定目录中文件,并创建configure.scan文件。...configure.in文件顺序并没有规定,但是你必须在所有宏最前 面和最后面分别加上AC_INIT宏和AC_OUTPUT宏。...在执行automake时,它会检查目录下是否存在标准GNU软件中应具备各种文件,例如AUTHORS、ChangeLog、NEWS等文件。...我们将其设置成foreign时,automake会改用一般软件标准来检查。 bin_PROGRAMS 这个是指定我们所要产生可执行文件文件

1.8K20

Ubuntu实现树莓派交叉编译

要进行交叉编译,我们需要在主机平台上安装对应交叉编译工具链(cross compilation tool chain),然后用这个交叉编译工具链编译源代码,最终生成可在目标平台上运行代码。    ...二、名词解释 Linux下大多数软件都使用Autoconf/Automake工具自动生成Makefile,只要使用“....>> --target: 这个参数比较特殊,表示需要处理目标平台名称,主要在程序语言工具如编译器和汇编器上下文中起作用,若无指定使用host值。...2、Makefile包含了一些基本预先定义操作: >>make: 根据Makefile编译源代码,连接,生成目标文件,可执行文件; >>make clean: 清除上次make...将交叉编译工具路径加到环境变量中,为了以后启动不用再设置,加到了bashrc中 1 $nano ~/.bashrc 2 #在文件末尾加上: export PATH=$PATH

2.4K50

Centos7.3云服务器上安装Nginx、MySQL、JDK、Tomcat环境

~]# chown 账号名称 文件或目录 ② 改变文件用户组用命令 chgrp [root@linux ~]# chgrp 组 文件或目录 ③ 对于目录权限修改之后,默认只是修改当前级别的权限...centos7.3下没有反应,故尝试第二种方法 方法二: 1.修改MySQL登录设置: vim /etc/my.cnf 在 [mysqld] 段中加上一句: skip-grant-tables 2...vim /etc/my.cnf 将刚才在 [mysqld] 段中加上skip-grant-tables注释掉 # skip-grant-tables 保存并且退出vim 5.重新启动mysql...sytemctl mysql restart 在此之后,重新登录mysql时还是会有即使设置了密码,登录时还是不需要密码状态,这个时候需要就是重启服务器: reboot 如果需要在本地Navicat...远程登录服务器上mysql,可以参考这篇文章: https://blog.csdn.net/qq_41684621/article/details/95313147

1.7K10

如何无网络下免编译安装程序(RPM

学习完大神文章还是有一些细节不太清楚,下面就再对编译RPM过程和详细知识点再梳理扩展一下留作备忘。...我们可以在有网环境下载rpm,也可以定制化将自己软件打成rpm。 准备rpm打包环境 这里用操作系统是CentOS6.7,redhat系其它发行版应该也类似。...--showrc rpmbuild spec规范说明 Summary: 软件内容概要描述 Name: 软件名称(spec文件与其一致) Version: 软件实际版本号,具体和源码一致...%clean: 清理一些暂存文件 %files: 定义哪些文件或者目录会放入rpm中 %pre: rpm安装执行动作 %post: rpm安装后执行动作 %preun: 卸载执行脚本程序(preun...(Query All) rpm -qi [软件名称]: 列出该软件详细信息 rpm -qf [指定文件]: 查找指定文件属于哪个RPM软件(Query Files) rpm -qc [软件名称]:

2.1K170

Centos7.3云服务器上安装Nginx、MySQL、JDK、Tomcat环境

/configure --prefix=/usr/local/nginx yum -y install gcc gcc-c++ autoconf automake make //安装c编译器 make...~# chown 账号名称 文件或目录 ② 改变文件用户组用命令 chgrp root@linux ~# chgrp 组 文件或目录 ③ 对于目录权限修改之后,默认只是修改当前级别的权限。...centos7.3下没有反应,故尝试第二种方法 方法二: 1.修改MySQL登录设置: vim /etc/my.cnf 在 mysqld 段中加上一句: skip-grant-tables 2.重新启动...vim /etc/my.cnf 将刚才在 mysqld 段中加上skip-grant-tables注释掉 # skip-grant-tables 保存并且退出vim 5.重新启动mysql sytemctl...mysql restart 在此之后,重新登录mysql时还是会有即使设置了密码,登录时还是不需要密码状态,这个时候需要就是重启服务器: reboot 如果需要在本地Navicat远程登录服务器上

2.3K00

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

有时候就在想,这个configure,make ,make install是什么意思呢,configure是测试存在特性,然后make开始编译,make install生成相应可执行文件。...先提提m4, m4是一种宏处理器,它是 POSIX 标准一部分。为什么叫m4呢,全称是macro,m后面有4个字母,据说是这样,哈哈。...比如AC_INIT([helloworld],[0.1],[xxx@xxx.com])含义是autoconf生成名字,版本(这个可以自己定义),反馈邮箱, AM_INIT_AUTOMAKE是检查...此处AUTOMAKE_OPTIONS使用是foreign,表示只检测必要文件。...bin_PROGRAMS定义了要产生执行文件,这里我们定义为helloworld file_SOURCES定义file这个执行程序依赖文件,其中“file_SOURCES”中前部分“file”要改写成可执行文件

3.9K30

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

有时候就在想,这个configure,make ,make install是什么意思呢,configure是测试存在特性,然后make开始编译,make install生成相应可执行文件。...为什么叫m4呢,全称是macro,m后面有4个字母,据说是这样,哈哈。...写了一段非常简单c程序,就凑合着编译着用吧。...比如AC_INIT([helloworld],[0.1],[xxx@xxx.com])含义是autoconf生成名字,版本(这个可以自己定义),反馈邮箱, AM_INIT_AUTOMAKE是检查...bin_PROGRAMS定义了要产生执行文件,这里我们定义为helloworld file_SOURCES定义file这个执行程序依赖文件,其中“file_SOURCES”中前部分“file”要改写成可执行文件

3.2K40

Autoconf编译配置

大家好,又见面了,是你们朋友全栈君。 1、大型项目编译过程 ....2)make make是一个命令,它使用第1步得到Makefile文件,如果只有”make”命令,而没有指明”目标”,一般情况下是编译源码。...调用automake,将每个Makefile.am转化成Makefile.in,同时生成满足GNU编码规范一系列文件(带-a选项自动添加缺少文件,但有几个仍需要自己添加,在执行automake需执行...如果configure.ac配置了使用libtool(定义了AC_PROG_LIBTOOL宏(老版本)或LT_INIT宏),需要在此步骤前先在项目根目录执行libtoolize –automake –copy...需要操作过程: 【修改configure.ac文件】 添加AM_INIT_AUTOMAKE宏 AM_INIT_AUTOMAKE是检查automake尝试Makefile时工具,传到这个宏里参数是要编译应用程序名称和版本号

1.1K50

JDK之动态代理(JDK与CGLIB)与静态代理

相比较静态代理,动态代理优势在于可以很方便对代理类函数进行统一处理,而不用修改每个代理类中方法,比如想要在每个代理方法加上一个处理方法,静态代理就需要在每个类内部加上这个方法 静态代理与动态代理区别...在调用具体方法通过调用InvokeHandlerinvoke方法来处理。...class Student implements Person{ @Override public void sayHi() { System.out.println("Hi 是一学生...动态代理是利用 asm 开源,将目标对象类 class 文件加载进来,然后修改其字节码生成新子类来进行扩展处理 ... public class Student { public void sayHi(){ System.out.println("Hi 是一学生

20320

基于腾讯云cos图床教程

作为一个爱琢磨的人,也打算搞一个自己图床网站,以后所有的图片都放这上面了,这样一来节省了不少流量和空间,还可以用这个网站发布一些高清图片。...那么问题来了,目前网上有些程序对接腾讯云cos需要在程序里面录入密钥信息不安全怎么办,那么为了安全应该怎么做呢?...在查找资料时候知道了腾讯云还有个COSFS东西,通过这个软件就可以把你cos盘挂载到你主机目录上。注意:该方法不适合那种高并发需要进行大量IO读写操作。...安装依赖软件COSFS 编译安装依赖于 automake、git、libcurl-devel、libxml2-devel、fuse-devel、make、openssl-devel 等软件,Ubuntu...:当然,如果我们直接这样设置的话,你图床是无法直接访问自己挂载目录(默认是只有root用户才能修改)我们需要修改访问权限:在你挂载时候在命令行后面加上 -oallow_other服务器重启后需要重新挂载

3.8K31

Autotools -- 自动编译链工程构建

笔者打包工作历程,也是从简单可执行文件拷贝到生成安装,也是走全了。但是实际工作一直也没有深究过编译语法,打包工具编写。到前一段时间,自己梳理了常用编译,安装语法等。...$(top_builddor) 定义了生成目标文件上最上层目录,用于引用.o 等编译出来目标文件 详细说明请看博文:Makefile.am 下述是笔者编写Makefile 第一层目录Makefile...AC_PREREQ([2.69]) #autoconf 版本 AC_INIT(gameserver, 1.0, 779508400@qq.com) # 工程信息 (目标文件, 版本信息,联系信息) AM_INIT_AUTOMAKE...(gameserver, 1.0) #添加 AM_INIT_AUTOMAKE目标文件, 版本信息) 必须需要 AC_CONFIG_SRCDIR([src/main.cpp]) # 生成可执行文件cpp...automake --add-missing’ ,其目的是,生成 Makefile.in 并且 添加缺少 生成 所缺少依赖文件

76120
领券