موضع "HH: 46: خطأ: معرف غير مؤهل قبل" مساحة الاسم "

StackOverflow https://stackoverflow.com/questions/2234294

  •  19-09-2019
  •  | 
  •  

سؤال

إليك الرمز الخاص بي:

 34  
 35 /**  
 36  ** \file position.hh  
 37  ** Define the example::position class.  
 38  */  
 39   
 40 #ifndef BISON_POSITION_HH   
 41 #define BISON_POSITION_HH   
 42    
 43 #include <iostream>   
 44 #include <string>   
 45    
 46 namespace example   
 47 {   
 48   /// Abstract a position.   
 49   class position   
 50   {   
 51   public:   
 52    
 53     /// Construct a position.   
 54     position ()    
 55       : filename (0), line (1), column (0)   
 56     {    

شكرا، سريع، هذا رائع. neclis، شكرا لك كذلك. كلا يا رفاق على نفس المسار على وحدات الترجمة. إليك تقرير الخطأ الكامل:

في الملف المدرج من الموقع .hh: 45، من Parser.h: 64، من Scanner.h: 25، من Scanner.ll: 8: Position.hh: 46: خطأ: معرف غير مؤهل قبل "مساحة الاسم"

الموقع .hh يبدو أن هذا:

35 /**
36  ** \file location.hh
37  ** Define the example::location class.
38  */
39 
40 #ifndef BISON_LOCATION_HH
41 # define BISON_LOCATION_HH
42 
43 # include <iostream>
44 # include <string>
45 # include "position.hh"
46 
47 namespace example
48 {
49 
50   /// Abstract a location.
51   class location
52   {
53   public:

يجب أن أضيف أيضا أن هذه الملفات يتم إنشاؤها بواسطة Bison. . أحصل على رمز .cc عن طريق إصدار Flex -C ++o Scanner.cc Scanner.ll.

هل كانت مفيدة؟

المحلول

يحدث هذا عند؛ أو بعض الشيء الختامي الآخر يفتقر إلى مساحة الاسم. هل أنت متأكد من أن الخطوط قبل 34 ليس لها رمز؟ إذا كان لديهم رمز (حتى إذا كان هذا الرمز غير صحيح #include) الخطأ موجود.

تحرير: أو في حالة وجود جميع الخطوط ال 34 ليس لديها رمز، فإن الخطأ موجود في الملف الذي يتضمن هذا الرأس، على الأرجح هناك رمز بدون نهاية؛ أو} أو) أو بعض الأحرف المنتهية الأخرى، وبعد ذلك (تجاهل التعليقات، بالطبع) هناك موقع #include.hh

أو إذا كان هناك شخصان يتضمنان على التوالي، واحد قبل الموضع .hh، آخر الأسطر الموجهة للرأس المضمنة قبل الموضع. HH مع الخطأ، عادة بنية بدون أ بعد الختام}

نصائح أخرى

قد يحدث الخطأ في ملف بخلاف الملف الذي تم الإبلاغ عنه في (بسبب وحدات التجميع)، أي في أو بالقرب من نهاية الملف "الآخر" (مثل مفقود "}" أو "؛" أو "# endif 'إلخ)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top