Portál AbcLinuxu, 15. července 2025 23:30


Dotaz: Prenosne programy

22.4.2006 20:43 :)
Prenosne programy
Přečteno: 205×
Odpovědět | Admin
Chtel bych zacit programovat pod GNU/Linuxem, ale problem je v tom, ze jsem casto nucen pouzivat M$ Widle XP. Slo by programovat v necem aby to bylo prenosne bez jakyhkoli uprav? Mam pouzit javu? Jake vyvojove prostredi (s grafikou) mam na javu pouzit?
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Luboš Doležel (Doli) avatar 22.4.2006 20:47 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: Prenosne programy
Odpovědět | | Sbalit | Link | Blokovat | Admin
Na Javu doporučuju Eclipse. Můžete použít i C++ spolu s QT 4.
22.4.2006 21:08 :)
Rozbalit Rozbalit vše Re: Prenosne programy
Kdyz pouziju C++ a QT4 bude to fungovat pod win, nebo budu muset prepsat pulku kodu?
Luboš Doležel (Doli) avatar 22.4.2006 21:18 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: Prenosne programy
Záleží, jak to napíšete... jestli budete používat Win32 only nebo POSIX/Linux only funkce, tak ano.
22.4.2006 21:20 :)
Rozbalit Rozbalit vše Re: Prenosne programy
Nejlepsi bude pouzit JAVU.
Luboš Doležel (Doli) avatar 22.4.2006 21:24 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: Prenosne programy
Tak v tom s vámi nesouhlasím, ale je to můj osobní názor :-)
23.4.2006 21:39 msk
Rozbalit Rozbalit vše Re: Prenosne programy
V pripade, ze budes na vsetko pouzivat QT-ckove classy ( stringy, mapy, vektory, ... ), nebudes musiet prepisovat nic. Pokial pouzijes nieco z win api, pripadne stl, budes mat problem. Ja osobne qt-cko pouzivam len na grafiku, vsetko ostatne pouzivam standard stl a stdc, takze na windows nic neprenesiem ( ale ani neplanujem ). Pokial este nie si zvyknuty na api windows alebo stdc++, nemal by byt vacsi problem pouzit na qt classy.
Luboš Doležel (Doli) avatar 23.4.2006 21:46 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: Prenosne programy
? STL i základní C funkce jsou i na Windows, je to součást standardu.
23.4.2006 21:45 Messa | skóre: 39 | blog: Messa
Rozbalit Rozbalit vše Re: Prenosne programy
Odpovědět | | Sbalit | Link | Blokovat | Admin
Python, PyGTK, možná PyQt…
24.4.2006 10:23 Michael
Rozbalit Rozbalit vše Re: Prenosne programy
Odpovědět | | Sbalit | Link | Blokovat | Admin
Kdyz budete psat spravne programy v Jave, tak budou prenositelne bez jakychkoliv uprav (jde to treba i u programu pracujicich se zvukovou kartou)

Programy v C/C++ samozrejme musite zkompilovat. Kdyz budete pouzivat nejake multiplatformni knihovny, tak to pujde docela dobre, samozrejme v cestach k souborum bude potreba zmenit lomitka za zpetna lomitka atd.

Vhodne je centralizovat neprenositelne casti kodu (treba funkce na zjisteni jmena souboru) a v nich pouzivat moznosti preprocesoru, treba nejak takhle

/*Pri prekladu zakomentovat podle potreby*/
#define OS_LINUX_OPT      
#define OS_LINUX_USR_LOCAL
#define OS_LINUX_USR
#define OS_WINDOWS

char* grabFile(char* filespec) {
  char p[256];
  #ifdef OS_LINUX_USR
  strcat(p,"/usr/local/myprogram/");
  strcat(p,filespec);
  #endif
  #ifdef OS_WINDOWS
  strcat(p,getProgramDirectory());
  strcat(p,"\\");
  strcat(p.filespec);
  #endif
  return p;
}


(Priznavam,ze tento kod neni bezpecny, snadno lze zpusobit preteceni)

... a tak nejak. Prikladem podobneho ucinneho vyuziti preprocesoru jsou zdrojove kody ke hre Wolfenstein 3D.
24.4.2006 10:47 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Prenosne programy
To nebyl nejšťastnější příklad. Já si například rád instaluji pokusné programy do $HOME, což může představovat vše od /home/vyskocil/usr/program v práci, až po /homes/eva/xv/xvysko02/usr/program ve škole ;-).
When your hammer is C++, everything begins to look like a thumb.
24.4.2006 11:29 Michael
Rozbalit Rozbalit vše Re: Prenosne programy
Adresar,ze ktereho je program spusten se da zjistit z nulteho parametru prikazove radky, coz by mela delat prave funkce getProgramDirectory(), kterou si ovsem musite napsat.A pak je opravdu jedno, kde ten program je.

Tudiz si zavedeme: OS_LINUX_ANYWHERE
char* grabFile(char* filespec) {
  char p[256];
  #ifdef OS_LINUX_ANYWHERE
  strcat(p,getProgramDirectory());
  strcat(p,"/");
  strcat(p,filespec);
  #endif
  return p;
  ....
}
getProgramDirectory() proste vezme nulty parametr prikazove radky a odsekne z nej vse za poslednim lomitkem a je to. Tak se program najde, at uz je kdekoliv.
elviin avatar 24.4.2006 13:49 elviin | skóre: 29 | blog: elviin | Plzeň-Praha
Rozbalit Rozbalit vše Re: Prenosne programy
C++> boost, std, qt, allegro, ...

namespace fs = boost::filesystem;

            // inicializace cesty
            
            fs::path tmpPath( FileOption, fs::native );
            
            // pokud cesta neni kompletni 
            // (neobsahuje C:\ nebo "/root/..")
            // pripoj pracovni adresar (workingDir)
            
            File = tmpPath.is_complete() 
                   ? tmpPath 
                   : workingDir/tmpPath; //spojeni cest
            
            if( !fs::exists( File ) )
            {
                std::cerr << "\nerror: File " 
                    << File.string() 
                    << "\ndoes not exist.\n";
                return 1;
            }
            else if( fs::is_directory( File ) )
            {
                std::cerr << "\nerror: Argument for the file " 
                    << File.string()
                    << "\nis a directory.\n";

                return 1;
            }
elviin avatar 24.4.2006 17:36 elviin | skóre: 29 | blog: elviin | Plzeň-Praha
Rozbalit Rozbalit vše Re: Prenosne programy
Jeste jen dodam, ze to bezi napr. na Apple Mac OS, HP-UX, IBM AIX, Linux, Microsoft Windows, SGI IRIX, a Sun Solarisu + ruzny prekladace.
Luboš Doležel (Doli) avatar 24.4.2006 15:55 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: Prenosne programy
samozrejme v cestach k souborum bude potreba zmenit lomitka za zpetna lomitka
To je pěkná blbost.

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.