Kezdőoldal » Számítástechnika » Programozás » Írtam egy c++ programot...

Írtam egy c++ programot windowson, hogy tudnám átkonvertálni úgy, hogy az menjen linuxon is?

Figyelt kérdés
Helló, kezdő vagyok programozás terén. Nos a következő problémám lenne: Készítettem egy programot és ezt szeretném linux alatt futtatni, viszont amikor beírom terminálba a konvertáláshoz szükséges parancsot (g++ -o nev nev.cpp), akkor a következő hibát írja ki: TCHAR has not been declared. Mi okozza ezt a hibát, és hogy tudnám ezt kiküszöbölni? Választ előre is köszönöm :)
2011. máj. 12. 14:07
 1/6 anonim ***** válasza:

Nem tudom, mivel fordítottad Windowson, mindenesetre egy TCHAR nevű cuccot használtál, ami nem szabvány C++, Win32-n a wchar szinonímája. Vagy írd át a programot, hogy hordozható legyen (nincs ok TCHAR-t használni általában), vagy tegyél bele egy define-t az elejére:

#define TCHAR wchar_t;

2011. máj. 12. 15:11
Hasznos számodra ez a válasz?
 2/6 A kérdező kommentje:
Visual c++-al 2008-al :)
2011. máj. 12. 15:15
 3/6 anonim ***** válasza:
Ha megvan a forrásfájl, akkor változtasd a kiterjesztését .cc-re, és akkor a gcc lefordítja neked!
2011. máj. 12. 22:36
Hasznos számodra ez a válasz?
 4/6 anonim ***** válasza:
22:36 Na EZ honnan jött? Azt is ugyanúgy c++ kódként próbálja majd lefordítani. És ugyanúgy nem fogja találni a TCHAR-t, ami egy Windows-only cucc.
2011. máj. 12. 23:05
Hasznos számodra ez a válasz?
 5/6 bongolo válasza:

A TCHAR a Microsoft találmánya arra, hogy egy programot le lehessen fordítani 8 bites meg 16 bites string használattal is. Ilyesmi van valamelyik windows.h header-ben:


#ifdef _UNICODE

#define TCHAR wchar_t

#else

#define TCHAR char

#endif


Linuxon nem kell ilyen trükközéseket csinálni, ott UTF-8 kódban vannak az ékezetes betűk, ami 8 bites (változó hosszúságú) kód, simán lehet char-ral dolgozni. Szóval minden TCHAR-t írj át char-ra.


Valószínű használtál olyan függvényeket is, mint _tcscpy, _tcslen, _tcschr, stb. Ezek helyett is az strcpy, strlem, strchr, stb. standard függvényeket kell használni. Aztán írhattál olyat is, hogy _T("text"), e helyett simán "text" kell.


De az a gyanúm, hogy lesz több problémád is a portolással...

2011. máj. 13. 00:59
Hasznos számodra ez a válasz?
 6/6 anonim ***** válasza:
Hasznal ANSI C++ -t es nem lessz problema a hordozhatosag ket rendszer kozott.
2011. máj. 15. 10:57
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!