Portál AbcLinuxu, 24. dubna 2024 20:46


Dotaz: makedepend po updatu gcc na verzi 4.3 nenaleza string.h

5.9.2008 05:13 Petr
makedepend po updatu gcc na verzi 4.3 nenaleza string.h
Přečteno: 265×
Odpovědět | Admin
Ahoj,

pravidelne updatuji svou distribuci Suse 11 (protoze doufam, ze kazdy novy update KDE 4.1 prinese vetsi stabilitu a funkcnost) a po poslednim updatu prestal fungovat makedepend. Programuju numericky vypocty a pouzivam Intelovskej prekladac icc verze 10.1.15. Obvykle jsem vkladal string.h pomoci #include string (samozrejme v <>) a vsechno fungovalo (nevkladal jsem #include string.h, protoze s tim byvaly problemy - spoluprace icpc a g++). Makedepend sice uz delsi dobu rval, ze treba nevidi nektery obvykly hlavickovy soubory, ale s timhle zadnej problem nebyl. Ted vsak string nevidi. Kdyz vlozim string.h, preklad sice probehne, ale program vubec nefunguje a pri spusteni vyhodi hned segmentation fault - nenajede ani zakladni vypis o spousteni pred alokovanim jakychkoliv poli. Napada nekoho z vas neco?
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

5.9.2008 11:15 Jirka P
Rozbalit Rozbalit vše Re: makedepend po updatu gcc na verzi 4.3 nenaleza string
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pozor! <string.h> není to samé, co <string>. <string.h> je C header obsahující např. funkci strcpy, <string> je C++ header s šablonou basic_string.

Problém s makedepend bude ten, že hledá v adresářích pro C a C++ hlavičky nenajde. Doporučuju se kompletně vykašlat na makedepend, a generovat závislosti g++ -M (nejsem si jistý, mrkněte do manuálu), icc (icpc) snad má taky nějaký takový přepínač.
7.9.2008 03:26 Petr
Rozbalit Rozbalit vše Re: makedepend po updatu gcc na verzi 4.3 nenaleza string
Diky. Prepinac je u icpc stejnej, ale nejak to stejnak nefunguje. Driv to fungovalo tak, ze po vlozeni string bylo mozny pouzivat i funkce ze string.h (strcat...) . ted ovsem nikoliv, tak porad nevim.
7.9.2008 19:04 Sinuhet | skóre: 31
Rozbalit Rozbalit vše Re: makedepend po updatu gcc na verzi 4.3 nenaleza string
Nejsem si uplne jisty, o co se vlastne pokousite (nebylo by napr. moudrejsi pouzit #ifdef __cplusplus?), ale v c++ jsou fce z c headru string.h k nalezeni v cstring.
9.9.2008 01:18 Jirka P
Rozbalit Rozbalit vše Re: makedepend po updatu gcc na verzi 4.3 nenaleza string
Tak v tom případě použijte normálně <cstring> nebo <string.h>. Pokud je problém s kompatibilitou s gcc, tak tu bych řešil jinde (icc na to má nějaké přepínače, nainstalovat novější verzi icc příp. nechat si starší verzi -dev balíčku z gcc). Například já jsem nedávno odinstaloval icc 9, protože rozjet to s gcc 4.2 (4.3? - nevim) nebyla šance.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.