我試圖通過 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 中的變數。
uj5u.com熱心網友回復:
該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
shell 變數的值$txt會放在TEXT名為 config.h 檔案的宏中AC_CONFIG_HEADERS([config.h]),例如:
/* A string to be printed */
#define TEXT "Hello world"
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/455482.html
