.[ ČeskéHry.cz ].
Problém s kódem pod Linuxem

 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> C / C++
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
perry



Založen: 28. 07. 2009
Příspěvky: 870

PříspěvekZaslal: 29. srpen 2015, 12:52:36    Předmět: Problém s kódem pod Linuxem Odpovědět s citátem

Zdravím,

mám problém s C++ kódem na Linuxu. Pod woknama (Visual Studio) vše běží, jak má. Když kód přeložím na Linuxu (gcc - žádný warning (max. unused variable)), výstup je blbě. Je to kompresní algoritmus na obrázky, takže je to docela problém a netuším, co by mohlo být blbě. Používají se tam bitové operace. Kontroloval jsem velikosti zda sedí short apod, to vše je OK.

Nějaké obecné typy? Zdroják případně můžu postnout, ale je dost dlouhý, takže bych začal u obecných typů, pokud někdo něco ví.

Používám záporné indexace polí, ale to by taky nemělo vadit. Naplním pole a pak si akorát počáteční pointer posunu na potici [i + 1], abych mohl číst [-1] a nemusel tam dělat ify u krajů obrázku.

Díky
_________________
Perry.cz
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Ladis



Založen: 18. 09. 2007
Příspěvky: 1488
Bydliště: u Prahy

PříspěvekZaslal: 29. srpen 2015, 14:30:53    Předmět: Odpovědět s citátem

GCC máš i pro Windows. To jen tak na okraj, abys nemusel přebootovávat (pokud nepoužíváš virtuálku). Testem tam bys rozlišil, jestli to je problém GCC, nebo Linuxu.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
perry



Založen: 28. 07. 2009
Příspěvky: 870

PříspěvekZaslal: 29. srpen 2015, 14:41:37    Předmět: Odpovědět s citátem

No zatim jsem zjistil:

- Funguje to pro 8bit data, ale pro 16bit ne (nicméně endian je stejný)
- Windows build mam 32bit (nějaké externí knihovny), Linux jede na 64bit
- Na ten Linux nemůžu, jen přes terminál, takže debuging tam moc nejde
_________________
Perry.cz
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
perry



Založen: 28. 07. 2009
Příspěvky: 870

PříspěvekZaslal: 29. srpen 2015, 14:56:07    Předmět: Odpovědět s citátem

No tak už jsem to našel... jsem kretén Smile

Blbě jsem měl velikost v memset

měl jsem
kód:

this->data = new T[width + 2];
memset(this->data[i], 0, sizeof(uint8) * (width + 2));


místo
kód:

this->data = new T[width + 2];
memset(this->data[i], 0, sizeof(T) * (width + 2));


Vážně super chyba Evil or Very Mad

PS: Proč pole... protože to má vícerozměrů a potřebuju ručně hýbat pointery a mít zápornou indexaci
_________________
Perry.cz
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> C / C++ Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna