2016-07-13 2 views
0

Ich arbeite an Catapul System-Level-Synthese und zu versuchen, einen Code in C++ zu implementieren, während beim Kompilieren ich eine Störung erhalte:Wie um den Fehler zu debuggen „Keine Definition für die Methode‚ios_base :: ios_base“

No definition for method 'ios_base::ios_base

Bitte helfen Sie diesen Fehler zu entfernen.

#include<ac_int.h> 
#include<iostream.h> 
#include<fstream.h> 
#include<math.h> 
using namespace std; 
#pragma hls_design top 
int main() { 

    ac_int<3>R; 
    ac_int<3>G; 
    ac_int<3>B; 

     fstream rfile; 
     rfile.open("image_r.txt",fstream::in | fstream::out | fstream::binary); 
     if (rfile.is_open()) 
      { 

      rfile>>R>>G>>B; 
      rfile.close(); 
      } 

    int fr = R/255; 
    int fg= G/ 255; 
    int fb = B/255; 

    ac_int<3>Y = ac_int<3> ((0.2989 * fr)+ (0.5866 * fg) + (0.1145 * fb)); 
ac_int<3>Cb = ac_int<3> ((-0.1687 * fr) - (0.3313 * fg) + (0.5000 * fb)); 
ac_int<3>Cr = ac_int<3> ((0.5000 * fr)- (0.4184 * fg) - (0.0816 * fb)); 

fstream wfile("image_w.txt",fstream::in | fstream::out | fstream::binary); 
     if (wfile.is_open()) 
      { 
       wfile<<Y<<Cb<<Cr<<endl; 
       wfile.close(); 
     } 


return 0; 

} 
+2

Verwenden Sie nicht '#include ' verwenden '#include '. Das gleiche gilt für 'fstream'. –

+2

Entfernen Sie die .h auf den Standard-Headern. '' nicht ''. Wählen, um als Tippfehler zu schließen – NathanOliver

Antwort

0

Die Header iostream und fstream benötigen keine Erweiterung. jedoch in Ihrem Code, den Sie eingegeben haben:

#include<iostream.h> 
#include<fstream.h> 

So sollten Sie es in ändern:

#include<iostream> 
#include<fstream> 

die .h-Erweiterungen zu entfernen und wahrscheinlich auch die Fehler vom Compiler erzeugten entfernen.

UND NUTZEN SIE NICHT using namespace std; Vertrauen Sie mir, wie Ihr Projekt immer größer wird, wird dies die Dinge immer schwieriger machen. Fügen Sie stattdessen den Namespace std:: manuell hinzu.

Verwandte Themen