2010-12-05 2 views
0

Ich lerne c/C++ und wollte mit QT Creator arbeiten. Ich benutze eine Base64-Klasse, die nur zu kompilieren verweigert und jede Hilfe würde sehr geschätzt werden.Probleme beim Kompilieren von C-Dateien in QtCreator

Die Fehlerleitungen ich erhalte, sind

/QTDev/PolicyFrameworkDesktop-build-desktop/../PolicyFrameworkDesktop/libhaggle/base64.h:59: error: expected ';', ',' or ')' before 'in' 

/QTDev/PolicyFrameworkDesktop-build-desktop/../PolicyFrameworkDesktop/libhaggle/base64.h:66: error: expected ';', ',' or ')' before 'in' 

/QTDev/PolicyFrameworkDesktop-build-desktop/../PolicyFrameworkDesktop/libhaggle/base64.c:68: error: expected ';', ',' or ')' before 'in' 

/QTDev/PolicyFrameworkDesktop-build-desktop/../PolicyFrameworkDesktop/libhaggle/base64.c:: error: At top level: 

/QTDev/PolicyFrameworkDesktop-build-desktop/../PolicyFrameworkDesktop/libhaggle/base64.c:320: error: expected ';', ',' or ')' before '*' token 

/QTDev/PolicyFrameworkDesktop-build-desktop/../PolicyFrameworkDesktop/libhaggle/base64.c:373: error: expected ';', ',' or ')' before 'in' 
/QTDev/PolicyFrameworkDesktop-build-desktop/../PolicyFrameworkDesktop/libhaggle/base64.c:456: error: expected ';', ',' or ')' before 'in' 

Da ich nur eine Verbindung zu einem Zeitpunkt hinzufügen kann, wird die base64.h Datei angehängt. Ich habe den ganzen Tag versucht, das Problem herauszufinden.

http://rapidshare.com/files/435084122/base64.h

Dank

Antwort

0

Der Header verwendet das Schlüsselwort, C99 restrict, dass Ihr Compiler offenbar nicht umgehen kann:

extern void base64_encode (const char *restrict in, size_t inlen, 
          char *restrict out, size_t outlen); 

jedoch auch, die Datei eine enthält:

#ifdef __cplusplus 
// In case we do not have gnu extensions when including from C++ 
#define restrict 
#endif 

Was bedeutet, dass sogar Ein C++ - Compiler, der das Schlüsselwort restrict nicht behandelt, sollte in diesem Code nicht brechen. Sie sollten überprüfen, ob Sie tatsächlich C++ kompilieren (Dateierweiterung ist möglicherweise von Bedeutung): Schließen Sie diese Datei von einer .cpp oder einer .c ein?).

+0

Hallo icecrime, danke für die schnelle Antwort, die Datei wird in eine c-Datei aufgenommen. Die folgenden Links sind für die c-Datei das generierte Makefile und die Profildatei, wenn das hilft. Danke http://rapidshare.com/files/435084121/base64.c http://rapidshare.com/files/435084571/Makefile http://rapidshare.com/files/435084682/PolicyFrameworkDesktop.pro – Bernard

+0

habe ich mir angesehen Dies für eine Weile ohne Erfolg, also habe ich es als eine Bibliothek erstellt und fügen Sie es in die Profildatei als Workaround. Das funktioniert jetzt, aber wenn jemand einen Weg kennt, es richtig zu machen, lassen Sie es mich wissen, danke. Die Beispielpro-Datei befindet sich unter http://rapidshare.com/files/435212949/PolicyFrameworkSpy.pro – Bernard