autotools相关内容
首先,我只想说一遍,我是Autotools的新手. 我有一个结构如下的项目: +-src +-commands Makefile.am +-copy Makefile.am copy.h copy.cpp +-delete Makefile.am delete.h delete.cpp
..
我有C ++代码,需要在编译之前对其进行sed处理.如何将其放入Makefile.am? 我尝试了典型的makefile设置,但目标似乎不存在: gentest.cc: $(SED) -i "s|FIND|REPLACE|" gentest.cc 如果您对我为什么要这样做感兴趣,那是因为我用python编写了程序(slider3.py),而我的伴侣也用c ++(gentes
..
我具有以下用于安装systemd服务文件的Autotools代码,该文件必须安装在$prefix之外,并安装到pkg-config变量指定的目录中: (我知道这不合适,但是我无法更改systemd的工作方式.) configure.ac AC_ARG_WITH([systemdsystemunitdir], AS_HELP_STRING([--with-systemdsy
..
Automake要求项目的源目录中存在以下“标准"文件: 安装 新闻 自述文件 复制 作者 ChangeLog 显然,构建程序不需要这些文件,但是Automake拒绝在没有它们的情况下运行.我知道--add-missing标志会导致生成样板文件,但我宁愿根本没有这些文件. 是否有一种方法可以强制Automake运行并忽略丢失的文件而不生成它们? 解决方案 使用f
..
我有一个在Mac上可以正常编译的自动工具项目,但是在Linux(Ubuntu 12.04.1 LTS)下,传递给gcc的命令行使库相对于目标文件而言是乱序的.例如,autotools生成以下命令来编译我的代码,将名为test.c的单个文件转换为名为test的二进制文件: gcc -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-
..
如果我编写了一个库,并且包含了用于开发的头文件,并且具有这样的src/Makefile.am: AM_CFLAGS = -std=c99 -Wall -Werror -Os lib_LTLIBRARIES = libmylibrary.la libmylibrary_la_SOURCES = a.c b.c include_HEADERS = a.h b.h 一切正常.但是,a.h和b.
..
我正在使用64位系统,但需要一组32位二进制文件.我必须将哪些选项传递给配置脚本以生成32bit/x86生成文件? 解决方案 通过传递以下参数来配置脚本,使我能够在64位Linux上构建32位库 ./configure --build=i686-pc-linux-gnu "CFLAGS=-m32" "CXXFLAGS=-m32" "LDFLAGS=-m32"
..
某些configure宏将某些变量声明为珍贵的,我想撤消这一点.例如,AC_PROG_CC会将CFLAGS声明为珍贵,而我需要使其不珍贵. 动机 这样做可以让我在顶级配置中修改CFLAGS,并允许子包配置在不与缓存的CFLAGS值冲突的情况下执行.有关更多背景信息,请参见此问题. > 解决方案 AC_DEFUN([AX_UNPRECIOUS], [ m4_define([
..
在configure.ac中使用autoconf,我需要附加到输出变量. 具体来说,我想为每个程序(Makefile.am中的myprogram1和myprogram2)以不同的方式附加到LIBS变量.假设myprogram1需要一个-lboost_python,而myprogram2需要-losg. 本质上,某些程序需要某些lib,而其他程序则不需要.这是我正在做的事的一个例子.当然
..
背景 我们为Matlab和Octave都构建了.mex文件.源代码对于Matlab和Octave都是通用的,但是在这里和那里进行了一些细微的修改(请注意代码中的宏条件).供参考,源结构为: mex/ | ------------------------------
..
具体来说,我想按照以下几行做一些事情.对于定义了应如何构建库文件的Makefile.am脚本,我希望能够始终访问通用库名称.例如,假设我希望将库的名称命名为"name",则可以从以下变量开始: LIBNAME = name 然后我可能会遇到这样的事情: lib_LTLIBRARIES = lib$(LIBNAME).la 但是,当我想要执行以下操作时,automake就会开始抱
..
我正在从事一个自动工具项目,并且是自动工具领域的新手.由于种种原因,为了完整起见,在底部进行了详细说明,我有一个Shell脚本,我希望从中获取输出以供在我的Makefile中使用. 我的情况类似于以下情况. Autoconf通过AC_CONFIG_FILES命令生成脚本.例如 AC_CONFIG_FILES([thescript], [chmod +x thescript]) th
..
要安装目录文件,我想像这样获取Glade(UI设计器)的目录: $ pkg-config --variable=catalogdir gladeui-2.0 /usr/share/glade/catalogs 但在我的Makefile.am中的变量中.有(便携式)方式可以做到这一点吗? 解决方案 在configure.ac中获取此值.我认为pkg-config的最新版本是0.28
..
我正在一个项目上,该项目需要一个具有自己的makefile和configure.ac的子项目.子项目是一个程序,用于为主项目生成源文件.有一个选项可以禁用此项目的构建,并尝试使用已安装的版本. 无论哪种情况,我都会在Makefile.am中使用一个包含程序路径的变量. 我的问题是,当使用项目的本地版本时,如何获取其在Makefile.am中使用的位置? 我尝试过 FOOPL
..
我正在GNU/Linux上的C ++项目上工作,我正在寻找一种方法来使用Autotools测试IBM Informix库的存在和可用性-即编辑configure.in.我没有使用Autotools的经验,因此基本上我是从项目的configure.in 等人脚本中学习的,并复制和更改需要更改的位置. IOW,我一直在适应configure.in中的现有文本. 到目前为止,我已经成功地使用con
..
我的项目需要libxml2的依赖关系,正在使用自动工具检查依赖关系&安装相同.我声明在configure.ac 中使用以下宏的依赖性 echo -n "checking if libxml2 is present... " PKG_CHECK_MODULES([LIBXML2], [libxml-2.0 >= 2.6.19], [echo "yes (featur
..
在来自 https://en.wikipedia.org/wiki/Automake的autoconf和automake流程图中,有几个过程 自动扫描 本地 自动标题 autoconf 自动制作 配置 制作 执行了哪些过程 软件程序的用户在下载了软件程序的发行版本后 由从其源代码创建软件程序发行版的一方(谁可能是软件程序的作者)? 之所以问这个问题,是因为我记
..
我的项目依赖于一个库(更确切地说是GTK +),所以我在configure.ac中添加了以下配置: PKG_CHECK_MODULES([GTK], [gtk+-2.0]) AC_SUBST([GTK_CFLAGS]) AC_SUBST([GTK_LIBS]) 我的Makefile.am是: bin_PROGRAMS = secretary secretary_SOURCES =
..
我正在构建检查框架示例'check_money',但它不在我的计算机上构建.错误是: configure: error: cannot find install-sh, install.sh, or shtool in "." "./.." "./../.." 我尝试使用以下方式安装它: libtoolize --force aclocal autoheader automake
..
因此,在我运行libtool并从库源中取出了libfoo.lo和foo.o文件之后,如何将libfoo.lo文件转换为普通的Linux共享库,例如libfoo.so.1.0.0,这样我就可以安装和链接到我的目标系统上? 解决方案 从问题中提到的输出中,您似乎以--mode = compile模式运行了libtool.您将需要使用--mode = link再次运行libtool以生成.a和.
..