2016-11-16 69 views
0

我剛剛下載的控制軟件的LMS6002石灰微從https://github.com/limemicro/lms6suite 我試圖編譯編譯lms6suite的時候,但我得到了一個錯誤枚舉錯誤從limemicro

[ 1%] Building CXX object CMakeFiles/lms-suite.dir/gui_src/lms_suiteMain.cpp.o In file included from /usr/include/GL/glx.h:30:0, 
       from /usr/local/include/wx-3.0/wx/unix/glx11.h:13, 
       from /usr/local/include/wx-3.0/wx/gtk/glcanvas.h:14, 
       from /usr/local/include/wx-3.0/wx/glcanvas.h:192, 
       from /home/gabriel/ELSE/lms6suite/gui_src/fft/oglGraph/OpenGLGraph.h:15, 
       from /home/gabriel/ELSE/lms6suite/gui_src/fft/pnlFFTviewer.h:17, 
       from /home/gabriel/ELSE/lms6suite/gui_src/lms_suiteMain.cpp:32: /home/gabriel/ELSE/lms6suite/gui_src/pnlLMS6002USB.h:39:14: 
      error: expected identifier before ‘int’ 
     enum Status { SUCCESS, FAILURE }; 
      ^In file included from /home/gabriel/ELSE/lms6suite/gui_src/lms_suiteMain.cpp:44:0: /home/gabriel/ELSE/lms6suite/gui_src/pnlLMS6002USB.h:39:21: 
      error: expected unqualified-id before ‘{’ token 
     enum Status { SUCCESS, FAILURE }; 
        ^CMakeFiles/lms-suite.dir/build.make:1142: recipe for target 'CMakeFiles/lms-suite.dir/gui_src/lms_suiteMain.cpp.o' failed make[2]: 
*** [CMakeFiles/lms-suite.dir/gui_src/lms_suiteMain.cpp.o] Error 1 CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/lms-suite.dir/all' failed make[1]: *** [CMakeFiles/lms-suite.dir/all] Error 2 Makefile:83: recipe for target 'all' failed make: *** [all] Error 2 

這裏所討論的頭文件:

1 #ifndef PNLLMS6002USBSTICK_H 
    2 #define PNLLMS6002USBSTICK_H 
    3 
    4 #include <wx/panel.h> 
    5 class wxStaticText; 
    6 class wxFlexGridSizer; 
    7 class wxButton; 
    8 
    9 #include "PluginPanel.h" 
10 class ConnectionManager; 
11 
12 class pnlLMS6002USB: public wxPanel, public PluginPanel 
13 { 
14   public: 
15   pnlLMS6002USB(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, int st yle = 0, wxString name = ""); 
16     void Initialize(ConnectionManager *pControl); 
17   virtual ~pnlLMS6002USB(); 
18   virtual void UpdatePanel(); 
19 
20     wxButton* btnUpdateAll; 
21   wxComboBox* cmbVCXOcontrolVoltage; 
22 
23   wxPanel* mPanelStreamPLL; 
24   wxTextCtrl* txtPllFreqRxMHz; 
25   wxStaticText* lblRealFreqTx; 
26   wxStaticText* lblRealFreqRx; 
27   wxTextCtrl* txtPllFreqTxMHz; 
28   wxTextCtrl* txtPhaseOffsetDeg; 
29   wxButton* btnConfigurePLL; 
30 
31     static const long ID_BUTTON_UPDATEALL; 
32   static const long ID_VCXOCV; 
33 
34     void OnbtnUpdateAll(wxCommandEvent& event); 
35   void ParameterChangeHandler(wxCommandEvent& event); 
36  protected: 
37   void OnConfigurePLL(wxCommandEvent &event); 
38 
39   enum Status { SUCCESS, FAILURE }; 
40 
41   Status ConfigurePLL(ConnectionManager *serPort, const float fOutTx_MHz, const float fOutRx_MHz, const float phaseShift_deg); 
42 
43   protected: 
44   ConnectionManager *m_serPort; 
45     void BuildContent(wxWindow* parent,wxWindowID id,const wxPoint& pos,const wxSize& size); 
46 
47     DECLARE_EVENT_TABLE() 
48 }; 
49 
50 #endif 

步驟重現:

git clone https://github.com/limemicro/lms6suite lms6suite 
cd lms6suite 
cd build 
cmake ../ 
make 

有人能告訴我這是從哪裏來的嗎?

韓國社交協會很多:)

回答

0

的問題是幾乎可以肯定,由於使用的單詞「狀態」作爲枚舉的名稱。這名會導致編譯器錯誤,因爲Xlib.h,這顯然是包括間接進入上述程序,包含以下行:

#define Status int 

所以預處理後,定義爲:

enum int { SUCCESS, FAILURE }; 

哪個無效的C++。更好地重命名該枚舉。