问题标签 [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.
configuration - autoconf/automake 的外部库配置宏
是否有一个 autoconf 宏来配置通用库,它可以:
- 生成 --with 配置选项
- 设置库和包含路径
- 设置编译器/预处理器和链接器标志
- 检查库是否存在并包含文件
- 设置配置宏
现在,我正在使用 ARG_WITH、CHECK_LIB 等进行所有操作。这些步骤是通用的,最终会被复制/粘贴并进行细微的更改。我搜索宏存档并没有找到通用解决方案。
谢谢
c - 是否可以使用 autoconf 检查 nvcc 编译?
我正在尝试在配置过程中测试一些典型的 cuda 功能。如何在我的 configure.ac 中编写它?就像是:
但是在 AC_LANG 中没有定义 nvcc。我必须创建自己的 m4 宏吗?
c++ - 如何安装和使用 libtool 共享库(.lo 文件)?
因此,在我运行 libtool 并从我的库源中取出一个libfoo.lo
文件foo.o
后,我如何将libfoo.lo
文件转换为普通的 Linux 共享库,libfoo.so.1.0.0
这样我就可以在我的目标系统上安装并链接到它?
sdl - 编译 cal3d 演示“cally”(带有骨骼动画的 3d 模型库)
我认为这是一个关于汽车制造的问题。
我正在为 Cal3D 的 cally 演示而苦苦挣扎。我遇到的第一个问题是 Cal3D 代码库在很多地方都丢失#include <cstring>
了#include <memory>
。
每次我在 Cal3d 中的任何源文件中遇到错误时都这样做足以让我编译它。
凯莉演示还需要一些#include <cstring>
现在我的问题是编译 tick.cpp 时没有定义 HAVE_SDL_H 。configure 和 makefile 似乎接受 SDL 安装在我的系统上,但 src/tick.cpp 中的宏没有。
我猜 configure.in 或其他东西中存在某种错误,但我似乎不知道它是什么。
编辑:
我终于编译了演示。
当我编译 cal3d 时,我添加#include <cstring>
了以下文件:
- src/cal3d/hardwaremodel.cpp
- src/cal3d/platform.cpp
- src/cal3d/renderer.cpp
- src/cal3d/submesh.cpp
- src/cal3d_converter.cpp
当我编译 cally 时,我添加#include <cstring>
了以下文件:
- src/demo.cpp
- src/model.cpp
在model.cpp 中,我将第 640 行从
到
我还做了一些更丑陋的更改来编译src/tick.cpp。
在 src/tick.cpp 中,我删除了与 SDL 相关的所有内容。我还删除了检查 __i386__ 或 __ia64__ 的宏 if 子句,以便也可以编译 Tick::getTime()。
我知道这不是一个适当的修复,因此非常欢迎改进。
- 带有 2.6.27 内核的 64 位 OpenSuSE。
- 海湾合作委员会:4.3.2
- GNU 自动制作:1.10.1
- GNU 自动配置 2.63
- 64 位版本的 SDL 库与 zypper 一起安装(通过 GUI)。
解决方案
在configure.in改变
到
(然后运行 autoreconf 和 ./configure)
在tick.cpp 中将所有检查更改HAVE_SDL_H
为HAVE_SDL_SDL_H
这都是由于 sdl 库中的重组。
gcc - 如何在 autoconf 配置脚本/makefile 中添加指向库的链接
我是一个 autotools 新手,我很难弄清楚如何轻松地将特定库链接到配置的目标之一。
我有一个源代码包,我想以通常的方式构建:./configure && make && make install
不幸的是,其中一个 cpp 缺少对另一个库的引用。手动编译(调整命令行)是可行的。但我宁愿“修补”编译脚本。编辑链接引用的标准位置在哪里?
这是我的错误信息。
c++ - 将版本和架构信息插入 C++ 源代码的最佳方法是什么?
我希望我的 C++ 程序包含一个“--version”选项,它会导致它打印出来:
- 为其编译的架构
- 源版本(例如,v0.1.0)
- 应用程序名称
我也是第一次使用 autoconf/automake,我注意到 configure.ac 既有二进制文件又有版本。它目前没有架构信息,我不想添加这样的信息,因为我将在多个拱门下编译。
有没有一种简单的方法可以自动在头文件或源文件中插入版本/架构/应用程序名称信息?大多数 C++ 程序员如何做到这一点?
c++ - 如何设置自动工具以在多个系统上同时为单独的架构构建项目?
我有一个使用 automake 和 autoconf 的 C++ 项目。我对这两个都是新手。
我的主目录是网络安装的——在我们拥有的每台服务器上都相同——我想在不同的机器上同时编译和运行项目(及其可执行文件)。
我们的服务器通常采用不同的架构。我的桌面是 32 位的,但服务器是 64 位的,等等。
configure.ac
我在为机器架构命名的单独目录中使用和Makefile.am
编译目标文件有哪些选项?在常规 Makefile 中执行此操作相对简单,但我不知道如何设置自动工具。
autotools - 在配置脚本中检查 automake/autoconf 版本
我正在尝试编辑一个配置脚本,如果它高于 Automake 版本 x.xx,它将执行这段代码,如果不是,它将执行另一段代码。
因此,我需要版本为 1.10 或更高版本,然后在这种情况下我想这样做:
并且,否则:
所以我会假设它看起来像这样(在configure.in
):
另外,我应该检查 autoconf 或 automake 版本吗?可能两者兼而有之?
autotools - 自动生成二进制文件到 bin/ 而不是 src/
我搜索了这个问题的答案,但找不到任何好处。也许他们老了,有些东西变了,所以我再问一次。
我有一个目录结构:
我的项目
源代码
斌
我想要这样,当我在根目录中制作时,将二进制文件放在 ./bin 中,而不是杂乱无章的 ./src。但是怎么做?
编辑:我正在使用 C++。我的 Makefile.am 没有什么特别的。只是 bin_PROGRAM 和 _SOURCES 变量。
当我运行 make 时,生成的二进制文件被放入 ./src。我只是希望它们在 ./bin 中。
python - 在python中访问autoconf定义的符号
我正在开发一个用 C++ 和 python 编写的项目。我的 configure.ac 中有以下行:
这意味着在运行配置生成的 config.h 中,我有以下定义行:
我只是想知道是否存在用于解析这样的配置符号的现有模块,或者至少是在 python 中访问这些定义的标准方式。