2010-03-02 4 views
13

घोषित नहीं किया गया है जब फेडोरा 11 पर कुछ काम कर कोड संकलन, मैं इस त्रुटि हो रही है:va_list

/usr/include/c++/4.4.1/cstdarg:56: error: ‘::va_list’ has not been declared 

मैं उपयोग कर रहा हूँ:

[[email protected] VTK]$ g++ --version 
g++ (GCC) 4.4.1 20090725 (Red Hat 4.4.1-2) 

किसी को क्या समस्या हो सकती है पता है?

+1

हम एक 'दूरबोधी-needed' टैग है में से एक सहित हल? – Maulrus

+1

@ मौलरस: हम और नहीं करते हैं। (यह लगभग हर कम स्कोरिंग सवाल में निहित होगा कि क्या हमने इसे वास्तविक के लिए किया था ...) –

+0

हाय डेविड मैं उबंटू 9 .10 पर एक ही मुद्दे में भाग गया। जीसीसी 4.4.1 का उपयोग करके क्या आपने इसे हल किया? यदि हां कृपया मेरी मदद करें। धन्यवाद विनीत –

उत्तर

3

जी ++ 4.4 में वैराडिक मैक्रो सेट में लाने से भ्रमित और मोड़ अर्थशास्त्र है। आपको g++ -E broken_code.cpp का उपयोग करके क्या हो रहा है और प्री-प्रोसेसर क्या ला रहा है, इस बारे में एक बेहतर विचार हो सकता है। कुछ दर्जन जीएनयू सी प्रीप्रोसेसर निर्देश हैं जो ::va_list__gnuc_va_list के रूप में संकलन से घोषणा को रोक सकते हैं जो स्वयं ही है टाइप __builtin_va_list

कबाड़ कोड:

$cat junk.cpp 
#include <cstdarg> 

void foo(char *f, ...) { va_list va; va_start(va, va); } 
int main(void) { foo("", "", ""); return 0; } 
$ g++ junk.cpp 
$ g++ --version 
g++ (Ubuntu 4.4.1-4ubuntu9) 4.4.1 

compiles और g++ -E junk.cpp जा रहा है की प्रासंगिक उत्पादन के साथ लिंक (चेतावनी के साथ):

# 40 "/usr/lib/gcc/i486-linux-gnu/4.4.1/include/stdarg.h" 3 4 
typedef __builtin_va_list __gnuc_va_list; 
# 102 "/usr/lib/gcc/i486-linux-gnu/4.4.1/include/stdarg.h" 3 4 
typedef __gnuc_va_list va_list; 
# 45 "/usr/include/c++/4.4/cstdarg" 2 3 
# 54 "/usr/include/c++/4.4/cstdarg" 3 
namespace std __attribute__ ((__visibility__ ("default"))) { 

    using ::va_list; 

} 
31

मैं एक ही त्रुटि संदेश था और मैं अगले फ़ाइलों

#include <stdarg.h> 

या

#include <cstdarg>