- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
文件说
Macro: AS_IF (test1, [run-if-true1], ..., [run-if-false])
Run shell code test1. If test1 exits with a zero status then run shell code run-if-true1, else examine further tests. If no test exits with a zero status, run shell code run-if-false, with simplifications if either run-if-true1 or run-if-false is empty.
configure.ac文件包含
AS_IF([test "$have_hdf5" != "no"], [AC_DEFINE([HAVE_HDF5], [], [we have HDF5 library + headers])])
但是当我输入运行 shell 代码 test1,即测试 "$have_hdf5"!= "no"
时,什么也没有出现。无论我输入什么(例如 test $have_hdf5
),我都一无所获。但是当我 ./configure
时它确实有效。那么 AS_IF
和 test1
shell 代码是如何工作的呢?是不是在测试一些环境变量?
最佳答案
test
实用程序没有可见的输出,除非您提供错误的表达式。
test
将以 0 状态退出,非零退出状态表示表达式为假(或无效)。
AS_IF
测试您作为其第一个参数提供的表达式的退出状态。
如果为 0(真),则执行关联的代码块。如果不是,它会继续下一个测试表达式并以相同的行为执行。
这种情况会发生,直到宏用完测试为止。一旦发现所有测试都为假,如果提供了最后一个参数,它就会执行最后一个参数的内容。
编辑
当然,如果您没有在当前 shell 中定义“have_hdf5”,那么当您单独执行 test
表达式时它不会为真,但如果在配置脚本中为真,它会做它应该做的。在任何情况下,除非使用输出语句,否则不会发生输出。
关于autoconf - 如何理解autoconf中的AS_IF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20818917/
所以,我正在努力将非常旧的 configure.in 改造成现代的 configure.ac,但我遇到了一些绊脚石. 我正在尝试使用 AS_IF 语句执行 1-3 件事,具体取决于 PKG_CHECK
所以,我正在努力将非常旧的 configure.in 改造成现代的 configure.ac,但我遇到了一些绊脚石. 我正在尝试使用 AS_IF 语句执行 1-3 件事,具体取决于 PKG_CHECK
我正在尝试编译 TPM2.0-TSS 项目,但在创建配置脚本时遇到错误: $ git clone https://github.com/01org/TPM2.0-TSS.git Cloning int
我在尝试构建 libnice-0.1.10 时遇到了这样的错误。对于解决方案,我正在关注 possibly undefined macro: AC_MSG_ERROR ,但仍然没有到达那里。 一些程序
autoconf手册建议使用AS_IF而不是if,但它没有提到m4_if。 AS_IF 是否也应该优于 m4_if? "Limitations of Builtins"手册的部分说使用 AS_IF 是
我是一名优秀的程序员,十分优秀!