使用 autoconf AC_ARG_WITH 将变量传递给 C 程序
Pass variable using autoconf AC_ARG_WITH into C program
我正在尝试通过 C 代码获取在 ./configure 调用中提供的值,以便可以打印它。它应该像 ./configure --allow-text="Some text"
这样传递到配置中
我目前拥有的:
AC_PREREQ([2.69])
AC_INIT([proj], [0.0.1], [])
AC_CONFIG_SRCDIR([src/main.c])
AC_CONFIG_HEADERS([config.h])
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
AC_PROG_CC
AM_PROG_CC_C_O
txt=something
AC_ARG_WITH([text],
AS_HELP_STRING([A string to be printed]),
[txt="$withval"], [])
AC_DEFINE([TEXT])
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
但我不知道下一步该做什么以及如何访问 main.c 中的变量。
AC_DEFINE_UNQUOTED
宏可用于扩展shell变量,例如:
AC_PREREQ([2.69])
AC_INIT([proj], [0.0.1], [])
AC_CONFIG_SRCDIR([src/main.c])
AC_CONFIG_HEADERS([config.h])
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
AC_PROG_CC
AM_PROG_CC_C_O
txt=something
AC_ARG_WITH([text],
[AS_HELP_STRING([--with-text=STRING],
[Specify a string to be printed])],
[txt="$withval"], [])
AC_DEFINE_UNQUOTED([TEXT],["${txt}"],[A string to be printed])
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
$txt
shell 变量的值将放在 AC_CONFIG_HEADERS([config.h])
命名的 config.h 文件中的 TEXT
宏中,例如:
/* A string to be printed */
#define TEXT "Hello world"
我正在尝试通过 C 代码获取在 ./configure 调用中提供的值,以便可以打印它。它应该像 ./configure --allow-text="Some text"
这样传递到配置中我目前拥有的:
AC_PREREQ([2.69])
AC_INIT([proj], [0.0.1], [])
AC_CONFIG_SRCDIR([src/main.c])
AC_CONFIG_HEADERS([config.h])
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
AC_PROG_CC
AM_PROG_CC_C_O
txt=something
AC_ARG_WITH([text],
AS_HELP_STRING([A string to be printed]),
[txt="$withval"], [])
AC_DEFINE([TEXT])
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
但我不知道下一步该做什么以及如何访问 main.c 中的变量。
AC_DEFINE_UNQUOTED
宏可用于扩展shell变量,例如:
AC_PREREQ([2.69])
AC_INIT([proj], [0.0.1], [])
AC_CONFIG_SRCDIR([src/main.c])
AC_CONFIG_HEADERS([config.h])
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
AC_PROG_CC
AM_PROG_CC_C_O
txt=something
AC_ARG_WITH([text],
[AS_HELP_STRING([--with-text=STRING],
[Specify a string to be printed])],
[txt="$withval"], [])
AC_DEFINE_UNQUOTED([TEXT],["${txt}"],[A string to be printed])
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
$txt
shell 变量的值将放在 AC_CONFIG_HEADERS([config.h])
命名的 config.h 文件中的 TEXT
宏中,例如:
/* A string to be printed */
#define TEXT "Hello world"