std::sprintf, std::strlen .. Windows(VS) % Ubuntu(gcc) ..
- HeinzK
- Establishment
- Beiträge: 234
- Registriert: 05.11.2009, 08:37
- Benutzertext: ZwiAner
- Echter Name: Heinz Kempter
- Wohnort: Wald
- Kontaktdaten:
std::sprintf, std::strlen .. Windows(VS) % Ubuntu(gcc) ..
Eine Frage: Warum gibt es z.Bsp. 'std::sprintf' oder 'std::strlen' nicht unter Ubuntu(gcc)? Ist die STL nicht auf allen Plattformen identisch?
Oder liegt das an meiner gcc-Version?
Oder liegt das an meiner gcc-Version?
Es ist leichter, einen Sack Flöhe zu hüten.
Re: std::sprintf, std::strlen .. Windows(VS) % Ubuntu(gcc) .
Hast du <cstdio> und <cstring> includiert?
- HeinzK
- Establishment
- Beiträge: 234
- Registriert: 05.11.2009, 08:37
- Benutzertext: ZwiAner
- Echter Name: Heinz Kempter
- Wohnort: Wald
- Kontaktdaten:
Re: std::sprintf, std::strlen .. Windows(VS) % Ubuntu(gcc) .
Nein, nur ..
.. aber z.Bsp. 'std::max' ist auf beiden Plattformen vorhanden.
Code: Alles auswählen
#include <stdio.h>
#include <limits.h>
#include <string>
#include <sstream>
Es ist leichter, einen Sack Flöhe zu hüten.
- dot
- Establishment
- Beiträge: 1745
- Registriert: 06.03.2004, 18:10
- Echter Name: Michael Kenzel
- Kontaktdaten:
Re: std::sprintf, std::strlen .. Windows(VS) % Ubuntu(gcc) .
std::max kommt aus <algorithm>. Viele Standardheader inkludieren abhängig von der jeweiligen Implementierung implizit schon einige andere Header mit. Darauf kannst du dich aber nicht verlassen. Daher: <cstdio> und <cstring> inkludieren.
Btw: stdio.h und limits.h sind keine C++ Standardheader ;)
Btw: stdio.h und limits.h sind keine C++ Standardheader ;)
- HeinzK
- Establishment
- Beiträge: 234
- Registriert: 05.11.2009, 08:37
- Benutzertext: ZwiAner
- Echter Name: Heinz Kempter
- Wohnort: Wald
- Kontaktdaten:
Re: std::sprintf, std::strlen .. Windows(VS) % Ubuntu(gcc) .
Ich habe mal alle 'includes' durch ihre 'c'-Version ersetzt .. <ccomplex> macht aber unter Ubuntu(gcc) Probleme.
PS: Aktueller Stand meiner 'includes':Spielt die Reihenfolge eine Rolle?
Code: Alles auswählen
-------------- Build: Debug in Test ---------------
Compiling: ../../../_KBasis/Basis/KArchive.cpp
In file included from /usr/include/c++/4.4/ccomplex:35,
from /media/C_DRIVE/Kempter/VC10/_SFML/_ZwiAnerPrj/Tests/stdafx.h:49,
from /media/C_DRIVE/Kempter/VC10/_KBasis/Basis/KArchive.cpp:1:
/usr/include/c++/4.4/c++0x_warning.h:31:2: error: #error This file requires compiler and library support for the upcoming ISO C++ standard, C++0x. This support is currently experimental, and must be enabled with the -std=c++0x or -std=gnu++0x compiler options.
Process terminated with status 1 (0 minutes, 1 seconds)
1 errors, 0 warnings (0 minutes, 1 seconds)
Ist mein gcc (wx2.8.10) nicht aktuell genug?/usr/include/c++/4.4/ccomplex:35
PS: Aktueller Stand meiner 'includes':
Code: Alles auswählen
//#include <stdlib.h>
#include <cstdlib>
//#include <stdarg.h>
#include <cstdarg>
//#include <stdio.h>
#include <cstdio>
//#include <string>
#include <cstring>
//#include <limits.h>
#include <climits>
//#include <math.h>
#include <cmath>
#ifdef _WIN32
#include <ccomplex>
#else
#include <complex>
#endif
//#include <float.h>
#include <cfloat>
#include <memory.h>
#include <malloc.h>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <fstream>
#include <algorithm>
#include <functional>
#include <vector>
#include <list>
#include <map>
Es ist leichter, einen Sack Flöhe zu hüten.
-
- Beiträge: 75
- Registriert: 24.07.2002, 00:00
- Wohnort: Bremen
- Kontaktdaten:
Re: std::sprintf, std::strlen .. Windows(VS) % Ubuntu(gcc) .
Da steht doch, was das Problem ist. Du musst C++11-Support einschalten, in dem du -std=c++0x bei deinen Compilerflags mit angibst.
- HeinzK
- Establishment
- Beiträge: 234
- Registriert: 05.11.2009, 08:37
- Benutzertext: ZwiAner
- Echter Name: Heinz Kempter
- Wohnort: Wald
- Kontaktdaten:
Re: std::sprintf, std::strlen .. Windows(VS) % Ubuntu(gcc) .
Danke für den Hinweis .. ich bin unter Ubuntu(gcc) noch etwas auf Glatteis. Mit -std=gnu++0x hat es dann geklappt.
Hurra .. nun bin ich experimentell! 8-) (zumindest in der Linuxwelt)
Hurra .. nun bin ich experimentell! 8-) (zumindest in der Linuxwelt)
Es ist leichter, einen Sack Flöhe zu hüten.
-
- Beiträge: 75
- Registriert: 24.07.2002, 00:00
- Wohnort: Bremen
- Kontaktdaten:
Re: std::sprintf, std::strlen .. Windows(VS) % Ubuntu(gcc) .
Unter Visual Studio hast du auch experimentellen C++0x support aktiv, nur dass du ihn meines Wissens nach nicht extra einschalten musst...
- HeinzK
- Establishment
- Beiträge: 234
- Registriert: 05.11.2009, 08:37
- Benutzertext: ZwiAner
- Echter Name: Heinz Kempter
- Wohnort: Wald
- Kontaktdaten:
Re: std::sprintf, std::strlen .. Windows(VS) % Ubuntu(gcc) .
Einen sichtbaren Schalter dazu sehe ich nicht ..
Es ist leichter, einen Sack Flöhe zu hüten.
- Schrompf
- Moderator
- Beiträge: 5047
- Registriert: 25.02.2009, 23:44
- Benutzertext: Lernt nur selten dazu
- Echter Name: Thomas
- Wohnort: Dresden
- Kontaktdaten:
Re: std::sprintf, std::strlen .. Windows(VS) % Ubuntu(gcc) .
Bei Visual Studio ist der Schalter unsichtbar: ab VS10 hast Du automatisch das Bisschen an C++11, was der Compiler kann.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.