c - Give an integer value to a macro through AC_DEFINE -
मेरे एक आवेदन में एक यह करने के लिए धन्यवाद, उपयोगकर्ता एक कस्टम टाइमआउट मान के साथ आवेदन संकलन कर सकते हैं: बात यह है, जब मैं ऐसा करता हूं, तो मेरा मैक्रो ... सूचक मैं अपने मैक्रो को पूर्णांक मान सेट करने के लिए आप गलत शेल चर को डीरेफर करने का प्रयास कर रहे हैं। Autoconf के साथ- with-timeout तर्क के मूल्य को CONNECTION_TIMEOUT स्थिर होता है (जिसका नाम काफी आत्म व्याख्यात्मक है) । इस स्थिर को पूर्वप्रक्रमक मैक्रो (
#define ) के रूप में परिभाषित किया गया है:
#ifndef CONNECTION_TIMEOUT # परिभाषित करें CONNECTION_TIMEOUT 3 #endif < पी> मैं
#ifndef और
#endif का उपयोग करने का कारण यहां है क्योंकि मैं चाहता हूं कि इस मैक्रो को समय संकलित करने पर कॉन्फ़िगर करने योग्य हो, जो कि
./ के माध्यम से है कॉन्फ़िगर स्क्रिप्ट इसे अनुमति देने के लिए, मैंने अपने
configure.ac फ़ाइल में एक स्विच जोड़ा:
AC_ARG_WITH ([timeout], [AS_HELP_STRING ([- के साथ-टाइमआउट] , [...])]) AS_IF (["एक्स $ के साथ-टाइमआउट" = "x"], [AC_DEFINE_UNQUOTED [[CONNECTION_TIMEOUT], ["टाइम-टाइमआउट $"], ["..."] के साथ AS_IF )]
./ configure --with-timeout = 1 < / कोड>
"1" के बजाय
1 के लिए सेट है इस वजह से, जब मैं इसे हेरफेर करने का प्रयास करता हूं ...
int timeout = CONNECTION_TIMEOUT;
(चार *) पूर्णांक के लिए
(int) , एक कलाकार के बिना काफी उम्मीद है।
autoconf कैसे प्राप्त करूं, उद्धरण के बिना? मैंने एकल उद्धरण चिह्नों का प्रयोग करने की कोशिश की है, और
AC_DEFINE लेकिन मैं इसे सही मान नहीं पा सकता ...
$ with_timeout (नोट: हाइफ़न के बजाय अंडरस्कोर) के रूप में प्रस्तुत करता है अभिव्यक्ति
$ के साथ- timeout संरूपित- uninitialized वेरिएबल
$ के साथ और शब्दशः स्ट्रिंग
-timeout । < P> दूसरे शब्दों में,
AC_DEFINE ([CONNECTION_TIMEOUT], [$ with_timeout]) का उपयोग करें
Comments
Post a Comment