Problém při kompilaci C s g !

T

Thomson

Guest
hi,
I když hledal nějaké webové stránky, a jen některé dokumenty, tyto problémy zůstaly nevyřešeny zatím!

Kód:# Include <iostream>

# Include <string>

int main ()

(

int chyby = 0;

string str ("velmi dlouho doslovný řetězec");

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

(

int len = str.size ();

Řetězec str2 = str;

if (str! = str2)

Chyby;

)

)

cout <<"řetězec třída:"

<<Chyby <<"chybě \ n";

)když sestavené s g pod Linuxem, followng informace došlo:"String" načerno!
a samozřejmě několik dalších varování vztahující se k této chybě!A i kontrolovat hledání knihovny, která g použít při hledání standardní knihovna neobsahuje C standardní knihovna, která je pod jiný adresář!Nicméně, když jsem modifed první patří soubor "iostream.h", potom / usr / lib / c knihovny je vyhledávání, která obsahuje C standardní knihovna.Může mi někdo říct, jak vyřešit?Díky předem!Thomson

 
Nemůžete vzpomenout, ale není g vyžadovat, abyste odkaz na řetězec souboru něco jako "-l ...."Pokusím se dozvědět více o vás.Přidáno po 15 minutách:Myslím, že jsem našel částečné řešení.

Musíš použít namespace

Kód:# Include <string>

using namespace std;int main ()

(

string = "Ogg Vorbis Rocks!";

return 0;

)

 
Použití namespace pro programy C je jedním z požadavků, které compiler "g ", takže
bude výslovně říká kompilátoru o konkrétní třídy nacházejí v konkrétní název
prostoru.
Pro psaní programů v C to není požadavek, a kód běží normálně bez použití
z jmenného prostoru.
Jinými slovy, pokud jste přenesení některých C kód z některých jiných překladač běžet pod
g , musíte upravit kód odpovídajícím způsobem.

 
Myslím, že to bude lepší použít anno druhé řešení, protože using namespace std; obsahovat všechny potřebné knihovny a zároveň std:: řekne kompilátoru, aby zahrnovala pouze konkrétní příslušné knihovny ...

 
Zkuste to.Reklamní předměty specifikovat namespace, ve kterém jsou definovány definice objektu.

# Include <iostream>
# Include <string>
int main ()
(
int chyby = 0;
std:: string str ("velmi dlouho doslovný řetězec");
for (int ix = 0; ix <100000; ix)
(
int len = str.size ();
std:: string str2 = str;
if (str! = str2)
Chyby;
)
)
std:: cout <<"string třída:"
<<Chyby <<"chybě \ n";
)

 

Welcome to EDABoard.com

Sponsor

Back
Top