autoconf相关内容
我刚刚将c ++项目转换为autotools项目,并从此处.当我的路径应为"bla bla"时,构建失败并显示"sh:/home/me/bla:无此类文件或目录".问题是我没有在任何地方写任何路径.我该怎么办?除了重命名路径外... Doh! 解决方案 对不起,您只能使用autoconf做几件事,而其中名称中带有空格的路径就是其中之一.
..
我正在尝试使用自动工具(autoconf,automake,libtool)作为构建系统来创建一个库.该库必须是可交叉编译的,但是构建它的步骤之一是在整个过程中通过从源代码构建的可执行文件生成源代码. 问题是我不能使用automake的系统来构建中间二进制文件,因为当它被交叉编译时,它不会在'--build'上运行以生成源代码. 解决此问题的一种方法是创建单独的autools项目以构建
..
有人可以告诉我是否可以在Makefile.am中插入条件块,以便将其进一步传递给由自动工具创建的Makfile吗? 这里是一个例子: ifeq "$(SOMEVAR)" "" SOMEVAR="default_value" endif 这似乎是执行条件操作的常用Makefile方法. Automake切断了endif行,并且make最终失败,并显示以下消息: Makefile
..
我有一个configure.ac文件,其中包含以下行: AC_DEFINE(CONF_XDISP, ":8", "X screen number") 这些常量在C源代码中用于设置编译默认值.我还有一个配置文件conf/bumblebee.conf,其中需要设置这些默认值.有人告诉我AC_SUBST可用于将@CONF_XDISP@替换为":8",使得下面的行: VGL_DISPLAY
..
当前,我们的安装说明是: autoreconf -fi ./configure ... autoreconf步骤从configure.ac生成configure文件,从Makefile.in生成Makefile.in.如果未安装任何一个依赖项(例如pkg-config),则configure和autoreconf都将失败,尽管后者会打印出一个隐秘的错误消息. 释放源tarball时
..
我正在开发一个将与GNU autoconf/automake一起分发的项目,并且我有一组bash脚本,它们称为awk脚本.我希望bash脚本以$ PATH结尾,而不是awk脚本.我应该如何将它们插入项目中?是否应该将它们与其他二进制文件一起放入? 此外,有没有一种方法可以在安装后确定文件的最终位置?我猜想/usr/local/bin并不是总是可执行文件最终会出现的地方... 解决方案
..
我有一个带有自动工具的项目:automake,autoconf. 我想禁止make重建文件configure,Makefile.in等;只是为了做编译工作. 有些文件是手工编辑的,我知道我不应该这样做. (或者从CVS更新项目,并将所有生成的文件存储在CVS中). 但是目前我没有安装正确版本的自动工具. 此文件的修改时间必须是什么(必须是新的/旧的): aclocal.m4
..
我需要构建一个配置有自动工具的库.通常的configure && make && make install步骤生成版本化的共享库,例如libfoo.so.x.x是否可以修改configure.ac或Makefile.am(当然还要跟上autoreconf),以便构建未版本化的lib. 谢谢! 解决方案 是的,假设该库是使用libtool构建的,则可以通过在库的LDFLAGS中添加-a
..
出于某些原因,我在纯文本文件中而不是configure.ac中定义我的项目版本号.我想创建一条语句,该语句将读取版本号并将其存储在编译期间. 现在我的configure.ac看起来像这样: AC_INIT([my program],[999.9.9]) 我想要类似的东西: AC_INIT([my program],[ $(cat VERSION) ]) 这当然行不通.这有
..
我需要根据库的存在条件有条件地编译一些代码.使用autoconf/automake看起来像这样应该很容易,但是我无法弄清楚. 例如,如果存在一个PNG库,我想包括使用它的代码.我的configure.ac具有: AC_CHECK_LIB([png], [png_create_write_struct_2]) 和我的Makefile.am有: if USE_LIBPNG lib
..
configure.ac中包含以下内容: AC_CHECK_PROGS(MAKE,$MAKE make gmake,error) if test "x$MAKE" = "xerror" ;then AC_MSG_ERROR([cannot find a make command]) fi 这已经存在于我们的项目中很长时间了,但是在某些设置中,我得到了这个错误: configur
..
在C/C ++项目中自动检测库依赖关系的最佳方法是什么? 我有一个项目,其中有对计算机的所有依赖项.它生成并运行.现在,我想组装一个自动工具构建系统.我正在寻找一种自动检测所需的所有依赖项(例如,使用的头文件和链接所需的库)的好方法. 对于我而言,似乎最难识别库位.我想说的是,为列表或其他内容中的每个函数生成AC_CHECK_LIB命令.我可能可以在Perl中做到这一点,但我必须想象它
..
为什么autoconf脚本中的条件语句在变量前加"x"?例如,GNU提供的用于测试Boost的宏具有以下条件,例如 if test "x$want_boost" = "xyes"; then 为什么未将其定义为: if test "$want_boost" = "yes"; then 解决方案 在某些早期的shell中,测试空字符串变量并不像现在这样容易,因此最好的选择是查看
..
我正在构建我的第一个自动配置托管软件包. 但是,我找不到任何简单的示例来说明如何指定所需的库,并找到该库可能在各个不同位置的位置. 我目前有: AC_CHECK_LIB(['event'], ['event_init']) 但是: 找不到在/opt/local/lib 中安装的版本 如果没有找到该库,它不会抱怨 我也需要将include路径设置为/opt/loc
..
我无法在Fedora 26 x86_64上构建一些基于Autotool的库. 64位Fedora将第三方库和供应商库放在/usr/local/lib64中. Ubuntu 17使用/usr/local/lib,因此相同的项目可以正常运行. 我一直在使用--libdir=/usr/local/lib64,但是三个库拒绝使用它.我缺少/usr/local的config.site,所以我尝试添加一
..
我搜索了此问题的答案,但找不到任何好处.也许它们很旧,并且有些变化,所以我再问一遍. 我的目录结构为: my_project src bin 我想要的是,当我在根目录中创建时,二进制文件放在./bin中,而不是混乱的./src.但是如何? 编辑:我正在使用C ++.我的Makefile.am没有什么特别的.只是bin_PROGRAM和_SOURCES变量.
..
我目前正在从事一个C ++项目,该项目依赖于递归自动制作进行构建. 我想建立一个共享库,该库的src目录中的Makefile.am看起来像 # ... # Library name lib_LTLIBRARIES = libadapter-@MY_API_VERSION@.la # Sources libadapter_@MY_API_VERSION@_la_SOURCES = \
..
我无法使用autconf为我的手臂交叉编译库. 我正在使用此行: ./configure --target=arm-linux --host=arm-linux --prefix=/bla/bla/bla/linux_arm_tool CFLAGS='-m32' make make install 当我执行file进行检查时,我得到: libjpeg.so.8.4.0: EL
..
一般问题:如果使用交叉编译器,如何确定运行configure时应提供的"--host"选项的值? 特定:我正在为arm64 arch使用交叉编译器.正确使用的"--host"值是什么? 解决方案 如果使用交叉编译器,如何确定运行./configure时应提供的--host选项的值? 在讨论工具链创建时,必须区分三台机器 用于构建工具链的构建机器. 主机,将在其中执行
..
各种开发人员不鼓励使用PKG_CHECK_MODULES(例如,在此答案中),但目前尚无定论. ,就我所寻找的原因进行全面的解释.所以,我问: PKG_CHECK_MODULES为什么有害? 有哪些替代方案? 我今天第一次使用它.我发现它非常有用,特别是在处理非常复杂的库集(例如GTK +)时,它具有所有这些依赖性: -I/usr/lib/i386-linux-gnu/gtk-
..