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

Autoconf编译配置

,里面主要是根据configure.ac中某些特定宏(如AC_DEFINE)生成的#define和#undefine宏,configure在将根据实际的探测结果决定这些宏是否定义 按照automake规定的规则和项目的目录结构...Autoconf输出哪些文件,常见的文件就是Makefile文件,config.h在AC_CONFIG_HEADERS宏里面指定了,这里不需要再次指定。...1:**每个目录一个Makefile.am文件;同时在configure.ac的AC_CONFIG_FILES宏中指定输出所有的Makefile文件,例如: 2)**原则2:**父目录需要包含子目录...3)**原则3:**Makefile.am中指明当前目录如何编译 编译安装 编译和安装的规则是绑定在一起的,通过同一条语句同时指定了编译和安装的处理方式 具体的格式为:安装目录_编译类型=编译目标...,无可执行权限 conf_DATA(需要自定义conf目录) **1.3:编译配置** ​ 标准的编译配置 ​ _SOURCES:对应gcc命令中的源代码文件 ​ _LIBADD:编译链接库时需要链接的其它库

1.2K50

Autoconf 详解

它重复地运行autoconf(在适当的情况下还运行autoheader)以重新创建以当前目录为根的目录树的Autoconf configure脚本和配置头文件。...初始化和输出文件 Autoconf生成的configure脚本需要一些关于如何进行初始化,诸如如何寻找包的源文件,的信息;以及如何生成输出文件的信息。本节叙述如何进行初始化和创建输出文件。...configure在编译程序以测试C的特征时,使用本变量。 变量: CPPFLAGS 为C预处理器和编译器提供头文件搜索目录选项( `-Idir‘)以及其他各种选项。...程序应该在运行时,而不是在编译时,检查那个文件。运行时配置对于用户来说更为方便,并且使得配置过程比在配置时获取这些信息要简单。...它们是如何影响我那些使用它们的程序的? 关于由Autoconf生成的配置脚本是如何发行和如何被使用的,并没有限制。在Autoconf第1版中,它们是服从GNU通用公共许可证的。

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

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

    一、前言 linux环境下,当项目工程很大的时候,编译的过程很复杂,所以需要使用make工具,自动进行编译安装,但是手写makefile文件比较复杂,所幸在GNU的计划中,设计出了一种叫做Autoconf...配置打包时需要打包的其他文件 SUBDIRS 设置处理本目录之前需要递归处理的子目录 示例: SUBDIRS=src/lib src/ModuleA/apple/shell src/ModuleA...xx.h 软件发布时需要的头文件 make install之后,会将头文件放到安装目录下的include目录里。...目录结构如下 在main.里调用了led.c和key.c里的函数。...在安装目录下的文件结果 九、auotomake多级目录生成Makefile(发布动态库+静态库) 1. 目录结构如下 在main.里调用了led.c和key.c里的函数。

    8.1K31

    使用ext_skel和phpize构建php5扩展

    这个选项将把附加的符号信息编译进PHP的执行文件,以便如果发生段错误,你能从中得到一个内核转储文件,使用gdb追踪并发现什么地方以及为什么会发生段错误。 另一个选项依赖于你的PHP版本。...这些给 configure 提供了可选项,和在运行 ./configure --help 时显示的帮助文本。...PHP_CHECK_LIBRARY() 尝试编译、链接和执行程序,在第一个参数指定的库中调用由第二个参数指定的符号,使用第五个参数给出的字符串作为额外的链接选项。...这一次,因为没有提供预定义编译选项,PHP_ADD_INCLUDE() 和 PHP_ADD_LIBRARY_WITH_PATH() 用于构建额外功能所需的头文件路径、库文件路径和库标志。...test "$PHP_MY_MODULE" == "yes"; thendnl PHP_EXTENSION(hello_module, $ext_shared) fi 这样就会导致在每次重新配置和编译

    48720

    初识ProtoBuf

    初识ProtoBuf 序列化和反序列化 我们在发微信语音时,实际上是将声音信号转化为电信号发送的,而对端在接收语音时又将电信号转化为了声音信号,序列化和反序列化的本质也是如此。...开发人员在开发设计类时,有些类的设计是比较耗时的,比如: class XXX{ // 定义一系列字段属性 // 一些处理字段的方法: Get()、Set() // 处理类的方法: 序列化和反序列化方法...解压后的文件包括bin、include、readme.txt文件: 而我们需要的就是bin目录下的protoc.exe文件,编译器路径实际上就是bin目录下的路径,将路径添加在环境变量当中: 点击后找到.../configure --prefix=/usr/local/protobuf 这里为了同一安装在同一目录下,我们使用第二条方式: 执行完上述命令之后,我们可以在目录里发现Makefile文件,那么接下来我们就只需要执行...local/protobuf/lib/ #(静态库搜索路径) 程序编译期间查找动态链接库时指定查找共享库的路径 export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/

    5400

    【ProtoBuf】2.环境配置

    PS: 安装中途出现很多error,可能是轻量级云服务器性能不够,此外还有中间的一些配置错误问题,最终采用了虚拟机,解决问题的方案在解决专栏中 一....配置环境变量 下载完之后将压缩包解压在某一个位置,打开解压后的文件夹: 进入bin目录,将其中的地址复制下来 搜索:“编辑系统环境变量” 并进入 点击: 接下来: 三.验证是否添加成功 打开终端...如果后续出现头文件报错,那是编译器版本比较低,因此我们需要将改g++升级到8,而我们普通安装的方式最高就是4.8.5因此,需要其他的方式配置。 输入sudo make install 完成。 4....export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/protobuf/lib/ #(静态库搜索路径) 程序编译期间查找动态链接库时指定查找共享库的路径...升级g++到8版本 上述提到,g++不提高到最新版本在后续操作会头文件报错,因此下面我们配置g++编译器 【解决】升级g++到8版本_每天都要进步呀~的博客-CSDN博客

    47630

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

    Autotools – 自动编译链 简介 虽然现在cmake,qmake 或者 ide的功能越来越强大,也越来越简洁。但是在日常使用中,庞大的开源库,autoconfig 还是占据大半壁江山。...Makefile.am编写 从Demo的文件目录看,为双层目录,server目录即常说的 top-lever ,顶层目录。第二层目录为,bin之前的输出目录也为配置文件目录,src为源码目录。...Makefile.am 文件,在 需要编译的目录或者编译以来目录每个目录都需要添加对应的Makefile.am 文件。...会生成两个文件一个 configure.log 和 configure.scan mv configure.scan configure.ac // 将 configure.scan 重命名为 configure.ac...-a, --add-missing add missing standard files to package 其他一些相关配置,个人认为相对比较重要的,根据自己的实际去配置。

    82520

    protobuf在嵌入式linux下的移植及c语言调用

    -4.9-2014.09_linux/bin 先把交叉编译链添加到当前的环境变量里, 然后配置configure, 我的配置如下: CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g.../configure了,但是根目录下居然没有configure文件,却有一个autogen.sh,原来是因为protobuf的编译方式做了修改,要执行autogen.sh才会生成configure脚本。.../configure了,但是根目录下居然没有configure文件,却有一个autogen.sh,原来是因为protobuf的编译方式做了修改,要执行autogen.sh才会生成configure脚本。...所以我们只需要将PKG_CONFIG_PATH 指定到/usr/local/lib/pkgconfig/即可 在交叉编译protobufcpp3.4时会报个错,解决办法如下: I just send #3934...另外protobuf在.proto文件里面指定了具体的位置编号,否则应该就没办法生成.c和.h文件,如果后续双方通讯格式要做调整,双方都使用同一个修改后的.proto文件重新生产对应的源文件,重新编译即可

    7K30

    autotools及Yocto下通过autotools编译

    、版本号、联系方式 AM_INIT_AUTOMAKE 必须要的,参数为软件名称和版本号 AC_CONFIG_SCRDIR 宏用来侦测所指定的源码文件是否存在, 来确定源码目录的有效性.。...AC_PROG_CC 指定编译器,默认GCCAC_CONFIG_FILES 生成相应的Makefile文件,不同文件夹下的Makefile通过空格分隔。...rice@rice:~/rice-autotools$ 上述的内容是在ubuntu上进行操作的,接下来我们说说如何在arm架构的板子进行运行。由于我目前的系统构建环境是基于Yocto上的。...在Yocto工程创建自己的recipe。这里我随便找了一个地方放我的recipe进行演示。创建files目录和rice-autotools_git.bb文件。...do_install():将我们编译完的源文件放进板子的根文件系统目录中。 inherit:继承。这里继承autotools。 然后我们在Yocto进行编译,然后将镜像烧录到板子上。

    1.6K20

    Php扩展开发(一)构建第一个扩展

    这里的--extname参数是要创建的扩展名称,扩展名称为 小写字母 + 下划线 组成,并且, 在ext目录中必须是唯一的。...配置文件config.m4 配置文件config.m4告诉UNIX构建系统扩展支持的configure选项以及扩展需要的额外的库, 包含哪些源文件等,该文件使用的是GNU的autoconf语法,以dnl.../configure建立了名为enable-ext_demo_1的选项 第二个参数将会在./configure命令处理到该扩展的配置文件时,显示该参数的内容 第三个参数是..../configure命令的帮助,在使用./configure --help的时候显示 第二个宏为PHP_NEW_EXTENSION,该宏声明了扩展的模块和必须要编译作为扩展一部分的源码文件。.../php/ext/pdo/ 此时,PHP安装在了/usr/local/php目录下,进入该目录,可以看到如下文件: /usr/local/php$ ls bin include lib man 进入

    69230

    Linux开发环境第三方库规划

    |   `-- glog |-- lib `-- share 从上不难看出,对于include目录是一个ABA的结构,对于lib则是直接的AB结构。...这样,在Makefile文件中指定CPPFLAGS和LDFLAGS时,一般可标准化写法: -I$THIRDPARTY/glog/include -L$THIRDPARTY/glog/lib -lglog...如果不符合这样的一个结构,建议修改成这样,一个重要原因是:非常强烈建议在代码中#include时包含第三方库名,如:#include ,这种做法可以减少文件名冲突,使用MySQL时就可能遇到这个问题...如果OpenSSL不是被安装在默认的目录下(即没有指定--prefix时安装OpenSSL),则在编译Thrift时可能会遇到找不到OpenSSL,这个时候可按如下方式编译安装Thrift: ....解压tar安装包后,会看到include和lib两个目录,它不符合前面所说的ABA和ABCA结构,建议按ABA的结构调整一下,以方便使用。

    1.3K30

    制作和上传CC++包到xmake的官方仓库

    xmake集成了内置的远程包依赖管理,用户只需要简单地在项目中添加自己所需要的包和版本,即可自动下载和集成对应的包到项目中,并且实现编译和链接。...示例见:add_syslinks add_linkdirs 包的链接库搜索目录也是可以调整的,不过通常都不需要,除非一些库安装完不在prefix/lib下面,而在lib的子目录下,默认搜索不到的话。...我们也可以不指定比那一平台和架构,仅设置主机平台和架构,这通常用于描述一些跟编译工具相关的依赖包,只能在主机环境运行。...)/*.dll", package:installdir("lib")) end) 本地测试 如果在本地xmake-repo仓库中,已经添加和制作好了新的包,可以在本地运行测试下,是否通过,如果测试通过...如果你需要的包,当前的官方仓库还没有收录,可以提交issues或者自己可以在本地调通后,贡献提交到官方仓库:xmake-repo 详细的贡献说明,见:CONTRIBUTING.md 关于如何制作自己的包

    1.1K20

    Linux应用开发: SQLite数据库交叉编译部署与运用

    尽管简单性是SQLite追求的首要目标,但是其功能和性能都非常出色,它具有这样一些特性: 支持ACID事务(ACID是Automic、Consisten、Isolated和Durable的缩写) 零配置...,不需要任何管理性的配置过程 支持SQL92标准 所有数据存放单独的文件中,支持的最大文件可达2TB 数据库可以在不同字节的机器间共享 体积小 系统开销小,检索效率高 简单易用的API接口 可以和TCL...-3250200]$ 2.3 搭建编译环境和程序运行环境 1....将生成的库文件拷贝到开发板的lib目录下,方便开发板上执行包含数据库的可执行文件时,能找到动态库。...为了交叉编译器在编译,包含数据库的源文件时,方便找到头文件和库文件,需要将生成的库文件和头文件分别拷贝到交叉编译目录下。

    1.1K20

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

    在本文中,将给大家介绍如何使用autoconf和automake两个工具来帮助我们自动地生成符合自由软件惯例的 Makefile,这样就可以象常见的 GNU程序一样,只要使用”....一些宏定义,这些宏经autoconf处理后会变成检查系统特性.环境变量.软件必须的 参数的 shell脚本. autoconf 是 用来生成自动配置软件源代码脚本(configure)的 工具.configure...从configure.in这个列举编译软件时所需要各种参数的 模板文件中创建configure. autoconf需要GNU m4宏处理器来处理aclocal.m4,生成configure脚本. m4是...Makefile.am中定义的 宏和目标,会指导automake生成指定的 代码.例如,宏bin_PROGRAMS将导致编译和连接的 目标被生成. 5.运行automake: $ automake –add-missing...我们将其设置成foreign时,automake会改用一般软件包的 标准来检查. bin_PROGRAMS 这个是 指定我们所要产生的 可执行文件的 文件名.如果你要产生多个可执行文件, 那么在各个名字间用空格隔开

    75800

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券