Srodne teme
Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

wcout i GCC (Tatko, obrati paznju :)

[es] :: C/C++ programiranje :: wcout i GCC (Tatko, obrati paznju :)

[ Pregleda: 5129 | Odgovora: 18 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.racasse.se

Sajt: dejan.lekic.org


+2 Profil

icon wcout i GCC (Tatko, obrati paznju :)08.03.2002. u 18:39 - pre 240 meseci
Tatko, GCC tim radi na nekim POSIX-olikim izmenama u sistemskim header fajlovima. Zapravo funkcije koje ti imas na svojoj masini zavise od C biblioteke koju imas (glibc) i NE ZAVISE OD KOMPAJLERA! :)

Ako koristis SUN masine na njima se nalazi C biblioteka u kojoj se nalazi wprintf() deklarisana u wchar.h (pokusaj takodje man wprintf :) (Za ovo znam da ima na Solarisu 2.8)

Uradi ovo, na toj masini gde nemas wcout probaj ovo i daj da vidimo sta kaze:

Code:

#include <iostream.h>
#include <fstream.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

ofstream wcout;

void main()
{
        static char aa[12]={"diag1.ps"};
              
        wcout.open(aa,ios::out);
        wcout << "showpage";
        wcout.close();
        
        exit(0);
}


Pozdrav

Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
199.171.112.*



+6 Profil

icon Re: wcout i GCC (Tatko, obrati paznju :)08.03.2002. u 19:57 - pre 240 meseci
Hvala Leko. Znam da je do biblioteke a ne do kompajlera, ali mi to i nije neka uteha.

A proveriću ono što si poslao. Doduše, nije Solaris, nego Linux...
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
..ndg-pm4-1.dialup.nethere.net



+6 Profil

icon Re: wcout i GCC (Tatko, obrati paznju :)09.03.2002. u 02:38 - pre 240 meseci
Nego, Leko, ne znam šta si hteo da pokažeš sa ovim. Ovo radi upravo ono što i treba: otvara fajl diag1.ps i u njega upiše "showpage". Mene sekira ovo:

Code:

#include <iostream>
using namespace std;

int main (void)
{
    wcout << L"Ovo je wide-char string" << endl;
}


Prijavljuje grešku (na MinGW - u):
'wcout' undeclared (first use in this function)

A nešto slično i na Linux-u. Ne kažem, nije do kompajlera naravno, već jednostavno headeri standardne C++ biblioteke koje sam dobio uz ove kompajlere ne sadrže wostream (pa ni wcout). Da li znaš gde može da se "skine" potpuna standardna C++ biblioteka, kao i zašto je nisam dobio uz gcc (MinGW)?
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.racasse.se

Sajt: dejan.lekic.org


+2 Profil

icon Re: wcout i GCC (Tatko, obrati paznju :)11.03.2002. u 11:34 - pre 240 meseci
A jel imas wsprintf() ?
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
199.171.112.*



+6 Profil

icon Re: wcout i GCC (Tatko, obrati paznju :)14.03.2002. u 16:36 - pre 240 meseci
Ma imam. Imam sve funkcije koje ima Microsoftov CRT (MinGW radi sa MSVCRT-om). Ono što mi fali su C++ konstrukcije...

Nego, kaži mi, da li ti možeš da iskompajliraš primer koji sam naveo gore?
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.telia.com

Sajt: dejan.lekic.org


+2 Profil

icon Re: wcout i GCC (Tatko, obrati paznju :)14.03.2002. u 16:43 - pre 240 meseci
Nisam mogao da ga iskompajliram, kao sto si rekao - wcout ne postoji. Nemam ovih dana vremena ni za sta, tako da nemam vremena da pogledam u vezi ovoga malo vise...

Elem, da nisu mozda nekako napravili da cout radi sa "wide" stringovima?

Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
66.228.70.*



+6 Profil

icon Re: wcout i GCC (Tatko, obrati paznju :)28.09.2004. u 15:00 - pre 209 meseci
Moram da "povampirim" ovu staru temu. Ovaj jednostavni program:

Code:

#include <string>
using namespace std;

int main()
{
  wstring str;
}


vraća grešku
Code:

test.cpp: In function `int main()':
test.cpp:6: error: `wstring' undeclared (first use this function)
test.cpp:6: error: (Each undeclared identifier is reported only once for each
   function it appears in.)
test.cpp:6: error: parse error before `;' token


na kompajleru:

Code:

% gcc -v
Reading specs from /opt/gcc.3.3/lib/gcc-lib/i586-pc-interix3/3.3/specs
Configured with:  : (reconfigured)  : (reconfigured) /dev/fs/C/gnu2.intel/egcs.source//configure --verbose --prefix=/opt
/gcc.3.3 --disable-shared --with-stabs --enable-nls --with-local-prefix=/opt/gcc.3.3 --with-gnu-as --with-gnu-ld --enabl
e-targets=i586-pc-interix3 --enable-threads=posix
Thread model: posix
gcc version 3.3


To je zato što (iz meni nepoznatog razloga) u fajlu c++config.h stoji:
Code:

// Define if code specialized for wchar_t should be used.
/* #undef _GLIBCPP_USE_WCHAR_T */


Ako definišem ovaj makro, tek onda dobijem kermes.

Vidim da i na drugim platformama ima takvih problema: http://gcc.gnu.org/ml/libstdc++/2003-02/msg00286.html

E sad, čini mi se da je DevCpp prilično popularno okruženje među ES-ovcima, a ono koristi gcc, da pitam da li se neko sreo sa ovim i da li zna kako razrešiti ovaj galimatijas pod Windowsom.
 
Odgovor na temu

idb
Ivan Bulic
Beograd

Član broj: 4436
Poruke: 402



Profil

icon Re: wcout i GCC (Tatko, obrati paznju :)28.09.2004. u 18:26 - pre 209 meseci
Jos uvek sebe smatram pocetnikom i sa ovim problemom se dosad nisam sreo (nisam imao potrebe).
..., ali evo mog iskustva:
Code:
// Windows 2000, Dev-Cpp 4.9.8.9, GCC 3.2
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <cstdio>
#include <cwchar>
using namespace std;

int main(int argc, char *argv[]){
    int d = 77;
    float f = 777.;
    wchar_t test1[] = L"Ovo je probni wchar";
    static char aa[12]={"diag1.ps"};
    ofstream wcout;
        wcout.open(aa,ios::out);
        wcout << "showpage\n";    // OK
        wcout << L"Ovo je wide-char string\n" << endl; //OK 
        wcout<<test1<<endl;        // Ne daje ono sto sam hteo nego adresu 
        wprintf(L"Wide-char izlaz: d = %d; f = %6.2f\n", d, f);    // OK
        wprintf(L"test1:  %s\n",test1);    // OK
        wchar_t test2[55];
        wcscpy(test2, test1);
        wcout<<test2<<endl;        // Ne daje ono sto sam hteo nego adresu     
        wprintf(L"test2:  %s\n",test2);    // OK 
    wcout.close();
    // Ovo dole daje ocekivane rezulte
    FILE *fw;
    fw = fopen("widechar.txt", "w");
        fwprintf(fw, L"Wide-char izlaz: d = %d; f = %6.2f\n", d, f);
        fwprintf(fw, L"test1:  %s\n",test1);
        fwprintf(fw, L"test2:  %s\n",test2);
    fclose(fw);
    system("PAUSE");    
    return 0;
}


Pokusaj rada sa klasom string, ne uspeva uz poruku:
[Linker error] undefined reference to `std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::basic_string()'
 
Odgovor na temu

idb
Ivan Bulic
Beograd

Član broj: 4436
Poruke: 402



Profil

icon Re: wcout i GCC (Tatko, obrati paznju :)28.09.2004. u 18:30 - pre 209 meseci
Da dopunim samog sebe:
Pokusaj rada sa klasom string ovako
Code:
...
#include <string>
....
wstring my_ws;  // ovde pocijnu problemi
....

ne uspeva uz poruku:
[Linker error] undefined reference to `std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::basic_string()'
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
66.228.70.*



+6 Profil

icon Re: wcout i GCC (Tatko, obrati paznju :)28.09.2004. u 19:21 - pre 209 meseci
Meni ne prepoznaje ni wcout.

Probaću kući na Cygwin-u.
 
Odgovor na temu

yooyo

Član broj: 4891
Poruke: 1101
*.nat-pool.bgd.sbb.co.yu



Profil

icon Re: wcout i GCC (Tatko, obrati paznju :)28.09.2004. u 21:46 - pre 209 meseci
Ovo prolazi u MSVC 7.1

Code:

#include <string>
#include <iostream>
using namespace std;
wstring s;
int main(int argc, _TCHAR* argv[])
{
    s = L"Tralalala";
    wcout << s << endl;
    return 0;
}
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
*.bos.east.verizon.net



+6 Profil

icon Re: wcout i GCC (Tatko, obrati paznju :)28.09.2004. u 22:57 - pre 209 meseci
Znam za MSVC. Problem se javlja kad probam da ga prebacim na gcc. Prvi pt sam se sreo sa tim problemom još pre 2+ godine, kad sam prebacivao kod na Linux, a sad je to (valjda) rešeno pod Linxom, ali ne i pod većinom drugih platformi. Navodno, podrška za wide strings se po defaultu uskraćuje na platformama gde to ne radi dobro, ali je moguće izhakerisati nešto da radi. Samo pitam da li je to već neko radio na Windowsu.
 
Odgovor na temu

mipko

Član broj: 11015
Poruke: 109
*.sbb.co.yu



Profil

icon Re: wcout i GCC (Tatko, obrati paznju :)29.09.2004. u 14:45 - pre 209 meseci
locate *.h | grep wsprintf

pa ako ga ima pokazace se...

pozdrav
Mirko
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
66.228.70.*



+6 Profil

icon Re: wcout i GCC (Tatko, obrati paznju :)29.09.2004. u 15:23 - pre 209 meseci
Nema ga ni wsprintf.

Nego, našao sam zanimljivo objašnjenje ovde:

http://www.gamedev.net/community/forums/topic.asp?topic_id=125909

Citat:
About _GLIBCPP_USE_WCHAR_T. I thinks it is set if/when running configure to build libstdc++ "an appropriate flag" is set. Otherwise unicode support would not be built in.


Probaću kad stignem da rebuildujem libstdc++. Nije mi samo jasno zašto wide string support nije uključen po defaultu.
 
Odgovor na temu

mipko

Član broj: 11015
Poruke: 109
*.sbb.co.yu



Profil

icon Re: wcout i GCC (Tatko, obrati paznju :)29.09.2004. u 15:42 - pre 209 meseci
takodje bi trebalo da je u glibc od verzije 2.1 pa nadalje to ukljuceno, evo upravo rebildujem glibc pa cemo da vidimo (samo to traje par sati)

evo ga i link

http://www.gnu.org/software/li...Formatted%20Output%20Functions

poz
Mirko

P.S.
nista od toga link sa Edinburgom mi je ocajan... a tamo mi je cluster na kome radim. Ako neko moze da proba novi glibc bio bih mu zahvalan
 
Odgovor na temu

mipko

Član broj: 11015
Poruke: 109
194.106.165.*



Profil

icon Re: wcout i GCC (Tatko, obrati paznju :)30.09.2004. u 00:40 - pre 209 meseci
#include <stdio.h>
#include <wchar.h>
#include <iostream>

using namespace std;

int main()
{
wprintf(L"%ls\n",L"Widechar");
wcout << L"widechar"<<endl;
return 0;
}

ovo sve lepo radi.

Suse 9.1.

Pogledacu koji glibc imam. sad odoh da spaavam

poz
Mipko
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
*.bos.east.verizon.net



+6 Profil

icon Re: wcout i GCC (Tatko, obrati paznju :)30.09.2004. u 01:27 - pre 209 meseci
Pod Linuxom izgleda da fino radi, bar od verzije 3 pa naviše (poslednji put kad sam programirao pod Linuxom, koristio sam gcc 2.95 a sa njim sam imao iste probleme). Fora je što ne radi pod drugim sistemima (npr FreeBSD, HP-UX, i Windows).

Pazi pod Cygwinom:

Code:

#include <iostream>
#include <string>
using namespace std;

int main ()
{
  wcout << L"Zdravo" << endl;
}


javlja:

Code:

$ g++ test.cpp
test.cpp: In function `int main()':
test.cpp:7: error: `wcout' undeclared (first use this function)
test.cpp:7: error: (Each undeclared identifier is reported only once for each
   function it appears in.)


a isto i kad koristim wstring.

Iz nekog razloga kad kompajliraju libstdc++ pod Windowsom i durgim platformama, onemoguće podršku za wide stringove.
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.231.216.81.gus.vf.siwnet.net

Sajt: dejan.lekic.org


+2 Profil

icon Re: wcout i GCC (Tatko, obrati paznju :)01.10.2004. u 06:14 - pre 209 meseci
Nemanja ne koristim Cygwin ni za kakvo ozbiljno programiranje. Koristim MinGW (+MSYS) uglavnom. Pokusaj da instaliras neke novije pakete... To bi sada trebalo da bude i na Windows-u. Koji libstdc++ imas instaliran tu?
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
66.228.70.*



+6 Profil

icon Re: wcout i GCC (Tatko, obrati paznju :)01.10.2004. u 13:37 - pre 209 meseci
Našao sam odgovor (bar za SFU, verovatno je nešto slično i za Cygwin):

http://www.interopsystems.com/tools/forum/tm.asp?m=3670

Ukratko, treba da se rebuilduje libstdc++ sa opcijom --enable-c-mbchar. Ako ikad stignem da se bavim time, javiću vam šta je bilo.
 
Odgovor na temu

[es] :: C/C++ programiranje :: wcout i GCC (Tatko, obrati paznju :)

[ Pregleda: 5129 | Odgovora: 18 ] > FB > Twit

Postavi temu Odgovori

Srodne teme
Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.