问题标签 [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.
gcc - 使用自动工具时 PACKAGE_NAME 和其他宏冲突
当对库和基于该库构建的软件使用自动工具(带有config.h
文件)时,编译器会抱怨重新定义了某些宏(PACKAGE_NAME、PACKAGE_TARNAME 等)。
我怎样才能防止这种情况?
库中需要该config.h
文件以将其设置传播到使用它的软件。
现在我有一个library_config.h
包含原始文件的包装脚本,config.h
并在用户不使用自动工具时提供默认值,但即使取消定义该包中的宏,我也会收到来自 gcc 的重新定义警告。
我相信最好的选择是拥有一个没有该宏的库:使用自动工具时,如何避免在库中定义 PACKAGE、PACKAGE_NAME 等?
编辑:尝试更好地解释。
在库中使用AC_CONFIG_HEADER
宏时,configure.ac
我会生成一个config.h
包含许多有用定义的文件。这个定义对于库本身(对于它的编译部分和它的头文件)和客户端软件都很有用。然而遗憾的是,AC_CONFIG_HEADER
将我需要的有用宏与其他具有固定名称(PACKAGE、PACKAGE_NAME)的通用定义混合在一起,当自动工具也用于客户端软件配置时会发生冲突。
php - 使用 ./configure (php) --disable-[name] 和 --without-[name] 有什么区别?
我想避免使用 fileinfo、ereg 和 parch 编译 php。--disable 和 --without 与 configure 有什么区别?
makefile - autotools 中有关 EXTRA_SCRIPTS 变量的文档在哪里?
Makefile.am 中的 EXTRA_SCRIPTS 变量是什么?它记录在哪里?
c++ - Boost MPI的Autoconf宏?
我正在搜索用于configure.ac
检查 Boost MPI 的 autoconf 宏。
在互联网上找到其中的几个并不难,但我尝试过的一个都没有按预期工作。
ax_boost_mpi.m4
你用什么?
编辑:我会更好地解释我的要求。我需要宏来告诉我 Boost MPI 是否可用(定义HAVE_BOOST_MPI
)以将编译器和链接器标志存储在某处并将编译器从普通 c++ 编译器切换到可用的 mpiCC 或 mpic++。
如果未找到 Boost MPI,我希望能够选择是否要停止配置过程并出现错误或继续使用 g++ 而未定义 HAVE_BOOST_MPI。
另外,它应该定义一个 MPIRUN 变量以允许运行一些检查。
autoconf - 使用 autoconf 执行“make clean”时指定要清理的其他文件
我正在使用自动配置。现在我有一个生成的中间 .cpp 文件。我想在执行“make clean”时删除 .cpp 文件。
我尝试在变量中指定文件CONFIG_CLEAN_FILES
,但这仅在我执行make distlclean
. 当我执行 a 时,是否有要设置的变量来删除文件make clean
?如果没有,我该怎么做?
谢谢
gcc - ./configure 指定版本的g++
如何告诉“配置”文件使用指定版本的 g++ 进行编译?
谢谢。
gcc - 与 glib-2.0 链接时,cygwin gcc 4.3 中的参数顺序很重要
我正在尝试使用 cygwin 编译适用于 os x 和 linux 的代码。但是,我发现 gcc 的参数顺序给出了意想不到的结果。
例如,以下失败:
但以下工作:
有人可以解释这是如何工作的吗?此外,我可以查看一些技术或代码来让 autoconf 根据平台更改参数顺序吗?
以下是错误消息的前两行:
谢谢,
SetJmp (gcc 4.3.4)
g++ - Autoconf/Automake "configure.ac:2: 选项 `-Wall' 无法识别"
我正在尝试从新项目的 autoconf / automake 开始。首先,我正在阅读“使用 GNU Autotools”并尝试构建 Hello-World-Tutorial。
第 96 页所需的文件(真正的 Page=105,因为它是 LaTeX 演示文稿)configure.ac
,Makefile.am
并且src/Makefile.am
看起来与文档中的说明完全相同。
之后我尝试了:
好吧,似乎 automake 不喜欢第二行:
因此我执行了:
您可以很容易地看到automake --add-missing --copy --no-force
我使用详细选项重复的 autoconf 运行。它只返回这个:
有人知道为什么这不起作用吗?我的印象是我的文件都没有错...
我想用它来为 Linux 和 Windows 编译 C++ 代码(使用 mingw32-g++)。你知道从哪里开始以及我需要注意什么吗?
我在 Ubuntu 9.10 64 位。
任何帮助表示赞赏。提前致谢,问候
macos - 如何在 OSX 中运行 autoconf 链接到指定的 OS SDK
我编写了一个包含一些 GPL 代码的小型命令行工具。一切都很顺利。使用操作系统 10.6。
使用的外部代码有一个 config.h 头文件,通过调用 autoconf 生成。我想将该工具部署到不同的操作系统版本。因此 config.h 可能看起来像
在生成 config.h 时告诉 autoconf 使用 /Developer/SDKs/MacOSX10.XXXX.sdk/usr/ 的方法是什么?
为了测试它,我运行了
在 OS 10.6 上调用 ./configure 之前。我知道configure脚本寻找libintl.h,它不在“out of box 10.6 / SDK”中,而是存在于本地机器下的/usr/local下用上述方法生成的config.h头文件有libintl.h 在系统中的信息 - 因此仅将 autoconf“链接”到 SDK 失败。
这是因为……“我们没有水晶球”吗?:)。或者在运行 autoconf 之前它是不正确的“setup”/flag-export,我希望是这样吗?如果是这样,那么设置环境变量的正确方法是什么?
提前谢谢了。
编辑。好像
成功了 :) 无论如何,谢谢。
autotools - AC_CHECK_LIB 可以用于非常规命名的库吗?
AC_CHECK_LIB 接受您要检查的共享库的基本名称作为参数。因此,对于名为“libxyz.so”的库,您可以将库“xyz”的基本名称指定为 AC_CHECK_LIB 的参数。如果我有一个名为 xyz.so 的库(注意:不是 libxyz.so),我如何使用 autoconf 检查该库的可用性/可用性?