موضع "HH: 46: خطأ: معرف غير مؤهل قبل" مساحة الاسم "
-
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 'إلخ)