gpt4 book ai didi

function - Autoconf 使用损坏的功能生成配置(ac_fn_set_status、ac_fn_exit)

转载 作者:行者123 更新时间:2023-12-03 07:49:35 24 4
gpt4 key购买 nike

我正在尝试为我的项目设置 autoconf。除了在 ./configure 中找不到 ac_set_<...> 函数之外,我的一切都“正常”工作。如果我直接运行它们,它们在configure.status中工作正常。

具体来说,我在使用 as_fn_set_status 和 as_fn_exit 时遇到问题。

如果我手动编辑配置文件并将这两个函数移至配置脚本的顶部,则一切正常。

为了达到这一点,我:

  1. 编写configure.ac
  2. 运行 autoreconf -i
  3. 运行./configure

结果行类似于:

./configure: line 1366: as_fn_set_status: command not found

有 3-4 行发生错误。

关于什么可能会产生这种效果有什么想法吗?这是我的configure.ac:

##########################################
# Autoconf Configuration File for RPDB #
##########################################

# RPDB: An Object-Oriented Wrapper for Oracle's Berkeley Database (BDB/libdb),
# which is available at: http://www.oracle.com/technology/software/products/berkeley-db/index.html

###########################
# Init Autoconf >= 2.61 #
###########################

AC_CANONICAL_SYSTEM

AC_PREREQ(2.61)
AC_INIT([rpdb], [0.1.0], [<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="412032292433013328252822342d2e3432312e3624336f222e2c" rel="noreferrer noopener nofollow">[email protected]</a>])

AC_CONFIG_AUX_DIR([.])
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_FILES([Makefile])
AC_CONFIG_HEADERS([config.h])

AM_INIT_AUTOMAKE

#################################
# Check for Library Functions #
#################################

AC_FUNC_ERROR_AT_LINE
AC_FUNC_MALLOC
AC_CHECK_FUNCS([strdup])

################################
# Check for Working Compiler #
################################

AC_PROG_CC
AC_PROG_RANLIB

#########################
# Check for Libraries #
#########################

AC_SEARCH_LIBS([db_create], [db], [have_libdb=yes])

#######################
# "Root Sourcefile" #
#######################

# "Root Sourcefile" is only used nominally to specify base path

AC_CONFIG_SRCDIR([src/RPDB_Base/RPDB.h])

#######################
# Check for Headers #
#######################

AC_HEADER_STDC
AC_CHECK_HEADERS([stdlib.h string.h])

# If we found libdb then check for db.h - we need to have both or we throw an error
if test "x${have_libdb}" = xyes; then
AC_CHECK_HEADERS([db.h], [], [have_libdb=no])
fi
if test "x${have_libdb}" = xno; then
echo "------------------------------------------"
echo " Oracle's Berkeley Database (libdb) "
echo " library and header file is required to "
echo " build RPDB. Stopping... "
echo " Check 'config.log' for more information. "
echo "------------------------------------------"
(exit 1); exit 1;
fi

#####################################################
# Check For Type-Related Compiler Characteristics #
#####################################################

AC_C_CONST
AC_HEADER_STDBOOL
AC_TYPE_INT32_T
AC_TYPE_PID_T
AC_TYPE_SIZE_T
AC_TYPE_UINT32_T
AC_TYPE_UINT64_T
AC_TYPE_UINT8_T

###############################
# Generate Configure Script #
###############################

AC_OUTPUT

最佳答案

您不能在 AC_INIT 之前调用任何具有非空扩展的宏。如果您将 AC_CANONICAL_SYSTEM 的调用移到 AC_INIT 之后,您的问题就会消失。

关于function - Autoconf 使用损坏的功能生成配置(ac_fn_set_status、ac_fn_exit),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3288517/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com