Problème lors de la compilation C avec g !

T

Thomson

Guest
Salut,
Bien que certains sites Internet et cherché référence à certains documents, les problèmes suivants restent non résolus pour le moment!

Code:# include <iostream>

# include <string>

int main ()

(

int errors = 0;

string str ( «une très longue chaîne littérale");

for (int ix = 0; ix <100000; ix)

(

int len = str.size ();

string str2 = str;

if (str! = str2)

erreurs ;

)

)

cout << "classe string:"

<<Erreur << "erreurs se sont produites \ n";

)lorsqu'il est compilé avec g sous Linux, les informations followng s'est produite:"string" au noir!
et bien sûr quelques autres avertissements relatifs à cette erreur!Et j'ai vérifié la bibliothèque de recherche que le g utilisé lors de la recherche de la bibliothèque standard ne contient pas la bibliothèque C standard, qui est sous un autre répertoire!Cependant, quand je Modifed le premier fichier d'inclusion de "iostream.h", puis / usr / lib / librairie C est recherché qui contient la bibliothèque C standard.Quelqu'un peut-il me dire comment résoudre cela?Merci d'avance!Thomson

 
Ne me souviens pas, mais ne pas g ont besoin de créer un lien vers le fichier à cordes avec quelque chose comme "-l ...."Je vais essayer d'en savoir plus pour vous.Ajouté après 15 minutes:Je pense avoir trouvé une solution partielle.

You gotta use namespace

Code:# include <string>

using namespace std;int main ()

(

string = "Ogg Vorbis Rocks!";

return 0;

)

 
Utilisation de l'espace de noms pour programmes C est une exigence par le compilateur "g " afin que vous
sera lui dire explicitement au compilateur la classe spécifique dans le nom spécifique
l'espace.
Pour écrire des programmes C, cette pratique n'est pas exigée et le code de s'exécuter normalement sans l'usage
d'espace de noms.
En d'autres termes, si vous portez des quelques morceaux en C code à partir d'un autre compilateur pour s'exécuter sous
g , vous devez modifier le code en conséquence.

 
Je pense qu'il sera préférable d'utiliser la deuxième solution parce que anno using namespace std; inclure toutes les bibliothèques nécessaires tout en std:: va dire au compilateur d'inclure seulement une bibliothèque respectifs spécifiques ...

 
Try this.Emporter spécifier l'espace de noms dans lequel les définitions d'objets sont définis.

# include <iostream>
# include <string>
int main ()
(
int errors = 0;
std:: string str ( «une très longue chaîne littérale");
for (int ix = 0; ix <100000; ix)
(
int len = str.size ();
std:: string str2 = str;
if (str! = str2)
erreurs;
)
)
std:: cout << "classe string:"
<<Erreur << "erreurs se sont produites \ n";
)

 

Welcome to EDABoard.com

Sponsor

Back
Top