问题标签 [autoconf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
3856 浏览

macos - 使用 Autoconf 在 Mac 上检测 32 位与 64 位 Intel CPU

我正在为应该在 32 位和 64 位 Linux 和 Mac 上运行的项目开发 Autoconf 脚本。在 Linux 上,检测 64 位很容易:你得到x86_64而不是i386for build_cpu. 我不知道如何为 Mac 做到这一点:32 位和 64 位机器都i386提供build_cpu. 有没有办法使用 Autoconf 内置函数来检测差异?

额外问题:在 64 位 CPU 上,是否有比以下方法更好的方法来以编程方式检测二进制文件是 32 位还是 64 位?

0 投票
2 回答
362 浏览

c++ - 使用 Autoconf 处理弃用的包含

我一直ext::hash_map在 C++ 项目中使用,并注意到在 g++ 4.3 中它已被弃用,取而代之的是unordered_map. 我需要保持与不可用的旧系统的兼容性unordered_map。我突然想到,这正是我已经在使用的 autoconf 可以处理的事情。但是,我未能成功找到有关这样做的文档。

我想我需要执行以下操作:
- 将ext::hash_map我的代码中的所有实例替换为 - 将我的代码中的所有MY_HASH_MAP
实例替换为 - 在 configure.ac 中使用和的某种组合包含一行ext/hash_mapMY_HASH_INCLUDE
AC_CHECK_HEADERSAC_DEFINE

我无法准确地找出正确的 autoconf 魔法来完成这项工作,并且想知道它是否是最好的解决方案。当然,这是许多其他人会处理的事情,并且可能有一些我无法找到的标准解决方案?

所以,三个相关的问题:
- 有没有我应该使用的标准方法来处理这个问题?
- 我如何在 autoconf 中做到这一点?
- 我是否应该只使用 -Wno-deprecated 并假设 C++ 标准在我有生之年不会更新?

0 投票
1 回答
356 浏览

gnu - 如何通过 --program-prefix=PREFIX 从配置传递到子生成文件之一?

Autoconf 让我很困惑。

我尝试修改 Makefile.in 中的 COMPILE 如下

但我对 FINALDIR 的使用是未定义的。正确的方法是什么?在我的辩护中,整个 autoconf 业务是一个预处理器的巢穴,隐藏着任何明显的东西。

在此先感谢...对不起,我是这样的工具!

0 投票
2 回答
2221 浏览

autoconf - Automake 和同名文件

我有一个 C++ autoconf 托管项目,我正在调整它以在 FreeBSD 主机上编译。最初的系统是 Linux,所以我做了一个 AM_CONDITIONAL 来区分我正在构建的主机并将代码分成系统特定的文件。

配置.ac

生成文件.am

当我运行 automake 时,它​​会失败并显示以下消息:

即使在 Makefile.in 构建过程中,关于如何配置 automake 以尊重此条件的任何想法?

如果文件有不同的名称,我可以这样做,但它是 c++ 代码,我试图保持文件名与类名相同。

提前致谢!

0 投票
1 回答
1447 浏览

opengl - 在 autoconf 脚本中处理非标准库位置的正常方法是什么?

我第一次尝试使用 GNU autoconf/automake 工具链,所以我的问题的答案可能很简单。

该程序需要 OpenGL/GLUT,其中头文件和库安装在非标准位置。我发现这些宏应该为我做所有的检查。我只是用AX_CHECK_GLUT来调用它。如何让宏找到库?我正在寻找类似的东西

./configure --with-glut-dir=/home/hanno/glut

更一般地说:在 autoconf 脚本中处理非标准库位置的正常方法是什么?当然,我可以使用 CPPFLAGS 和 LIBS 变量,但我觉得我错过了一些东西。

0 投票
4 回答
1482 浏览

linux - 在 GNU/Linux 系统上,我应该从哪里加载应用程序数据?

在这种情况下,我将 c 与 autoconf 一起使用,但问题适用于其他地方。

我有一个运行时需要的 glade xml 文件,我必须告诉应用程序它在哪里。我正在使用 autoconf 在我的代码中定义一个指向“指定前缀目录”/app-name/glade 的变量。但这只有在安装应用程序后才开始起作用。如果我想在那之前运行程序怎么办?是否有标准方法来确定应检查哪些路径以获取应用程序数据?

谢谢


感谢您的回复。澄清一下,我不需要知道应用程序数据的安装位置(例如,通过在 /usr、usr/local 等中搜索),配置脚本可以做到这一点。问题更多的是确定该应用程序是否已安装。我想我会先检查安装位置,如果没有,然后检查“./src/foo.glade”。

0 投票
4 回答
549 浏览

c++ - 重构构建系统以使用 Autotools

在过去的几天里,我一直在阅读使用autotools来构建我的项目,而不是过去几个月我拼凑的 Makefile。不幸的是,我还没有找到一个例子来让我对我的项目结构目前的情况有足够的了解。

我的项目的应用程序代码中包含三个库。我正在寻找使用单个配置脚本来制作(和安装)应用程序和库的最佳方法。

0 投票
1 回答
1486 浏览

makefile - 应用前autoconf编译依赖

在过去的几天里,我一直在使用 autotools 工具,终于取得了重大进展。我遇到的一个问题是我有两个库需要在主应用程序代码之前编译。我不太确定该怎么做。我的目录结构如下,也是我的 configure.ac 的一个片段。

我需要在src/Makefile之前编译csv/Makefilegtkworkbook/ Makefile ;有没有办法指定这个?现在我收到一个关于应用程序编译过程中不存在的库(csv)的错误。

0 投票
3 回答
4673 浏览

c++ - 如何使配置脚本检查依赖项

我使用 autoconf 生成了一个配置脚本来构建我的项目。

除非我没有安装一些需要的库,否则它工作正常。Make 在缺少某些文件时返回错误,但我认为它应该由配置脚本实际检查?

所以我的问题是:如何修改 autoconf 生成的脚本来寻找依赖关系并告诉用户它缺少哪些库?

0 投票
2 回答
8035 浏览

makefile - Autotools 库和目标文件输出控制

我的目标是将所有目标文件构建在 .objs 目录而不是 Makefile 的根目录中,并将二进制文件(和库)复制到项目的bin/目录中。但我一直找不到任何资源来解释如何做到这一点。我该怎么做呢?

这是我的 configure.ac 和src/Makefile.am - 对于两个引用的共享库,我有类似的 Makefile.am 文件。它们编译,并在将它们复制到bin/目录后正常工作。我只是想自动化这个过程。

配置.ac

src/Makefile.am

所以,我的问题是如何为每个 Makefile 的编译结果指定输出目录(我希望它们被复制到bin/,并且目标文件在每个项目的.obj中而不是在 Makefile 的根目录中.

感谢您迄今为止的帮助。这个网站是一个很好的资源,我从已经提供的链接中学到了很多东西。