Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
VODA

Založen: 29. 07. 2007 Příspěvky: 1721 Bydliště: Plzeň
|
Zaslal: 11. květen 2015, 23:06:08 Předmět: G++ - WinXP/Win7/Win8 |
|
|
Tak, koupil jsem si nový PC, kde jsou bohužel nainstalované Windows 8.1. Přestože jsem je chtěl bojkotovat, řekl jsem si, že to s nimi zkusím.
Jenže ejhle. Starší verze g++, kterou jsem používal na XP a mám jí v práci na Win7, ve Win8 nefunguje. Nepomohla kompatibilita...prostě nic. Na netu jsem našel jen rady typu: nainstaluj si novější MinGW. Jenže to mi nepomohlo. Kód nejde vůbec přeložit. Vyrojí se na mě kupa chyb (např. že u metod píši void, když nepřijímá argumenty atp.)
Tohle nechápu... v práci mám Win7 64-bitů a nemám problémy a Win8 musí mít pořád něco extra...
Nevíte někdo co s tím? Neřešil někdo něco takového? Díky moc.
PS: Mám 100 chutí si sehnat Windows 7 a přeinstalovat si to a nebo se pokusit o nějaký downgrade... _________________ Opravdovost se pojí s trýzní... |
|
Návrat nahoru |
|
 |
Tringi

Založen: 28. 07. 2007 Příspěvky: 290
|
Zaslal: 12. květen 2015, 05:55:35 Předmět: |
|
|
Wow, kde vůbec začít. Myslíš, že verze OS fakt může ovlivnit chování parseru? Ano, Windows 8 jsou IMHO nahovno z hlediska UI a UX ale kernel je solidní a tohle mi přijde jako pěkná blbost, zvlášť protože na nich MinGW používám (okrajově).
Nicméně, zaprvé, že starší verze nefunguje znamená co? Crash? Chyba? Nenajde DLL? Nevyplivne kód? Tohle nějaký problém (v MinGW) být může.
Zadruhé, problém nové verze bude spíš v defaultním dialektu jazyka, zkus dogooglit a doplnit parametry jako -std=g++99, -no-pediantic, -Wno-error (tohle protože co popisuješ zní jako warning a -Werror z warningů udělá tvrdé chyby).
EDIT: A vůbec, ukaž command lajnu, makefile, malinký exampl kódu a co na něj kompilér vypíše, ideálně spuštěný s parametrem "-v" a pak ti najde řešení polovina fóra obratem. _________________ WWW | GitHub | TW |
|
Návrat nahoru |
|
 |
VODA

Založen: 29. 07. 2007 Příspěvky: 1721 Bydliště: Plzeň
|
Zaslal: 12. květen 2015, 06:53:14 Předmět: |
|
|
U staré verze MinGW mi to píše při spuštění g++, že program přestal pracovat. Zkoušel jsem MinGW32-g++, ten kompiluje, ale nelinkuje. Tam zas píše nějakou chybu s collect2.
Co se týče nové verze MinGW, tak tam zkusím ty flagy... ale sere mě, že když nakopíruji MinGW ze svého starého PC na svůj služební počítač, tak v pohodě a jakmile to strčím na nový PC, tak to najednou nejde... _________________ Opravdovost se pojí s trýzní... |
|
Návrat nahoru |
|
 |
perry

Založen: 28. 07. 2009 Příspěvky: 879
|
Zaslal: 12. květen 2015, 07:16:52 Předmět: |
|
|
citace: |
když nakopíruji MinGW ze svého starého PC na svůj služební počítač, tak v pohodě a jakmile to strčím na nový PC, tak to najednou nejde... |
Nakopíruji? Tím je myšleno co... kopie nebo instalace. _________________ Perry.cz |
|
Návrat nahoru |
|
 |
rezna
Založen: 27. 07. 2007 Příspěvky: 2156
|
Zaslal: 12. květen 2015, 08:19:20 Předmět: |
|
|
kopie bude asi kopie a tam bude zakopany pes - chtelo by to instalaci - urcite ti v nejakych systemovych mistech chybi nejaka DLL ... |
|
Návrat nahoru |
|
 |
mar
Založen: 16. 06. 2012 Příspěvky: 610
|
|
Návrat nahoru |
|
 |
Tringi

Založen: 28. 07. 2007 Příspěvky: 290
|
Zaslal: 12. květen 2015, 10:37:33 Předmět: |
|
|
rezna napsal: |
kopie bude asi kopie a tam bude zakopany pes - chtelo by to instalaci - urcite ti v nejakych systemovych mistech chybi nejaka DLL ... |
MinGW mi nikdy problém při přenášení nedělal. Instalátor jen stáhne a rozbalí archivy, nic víc, žádné registry, path, configure, nic. Jó MSYS je jiná bestie, ale to kdyby VODA používal, tak určitě zmíní.
Kdyby ale předvedl malý examplík, tak jak jsem dopsal v editu výše, budeme v ten moment všichni mnohem moudřejší. _________________ WWW | GitHub | TW |
|
Návrat nahoru |
|
 |
TeaTime
Založen: 17. 06. 2011 Příspěvky: 264
|
Zaslal: 12. květen 2015, 14:00:29 Předmět: |
|
|
VODA napsal: |
U staré verze MinGW mi to píše při spuštění g++, že program přestal pracovat. Zkoušel jsem MinGW32-g++, ten kompiluje, ale nelinkuje. Tam zas píše nějakou chybu s collect2.. |
Jakou přesně chybu s collect2 to píše?
Na fórum to snad píšeš proto, aby jsme ti poradili s chybovýma hláškama, který neznáš. Tak jsem tu chybovou hlášku pošli.
Mohl by jsi jen tak pro zajímavost napsat, jaký používáš editor/ide a build systém? Trochu mě překvapuje, že na windows si sám instaluješ gcc. Myslel jsem, že na windows se většinou používá MSVC++ nebo překladače bundlované s nějakým IDE. Já na Windows nikdy moc neprogramoval, tak se v tom vůbec neorientuji. |
|
Návrat nahoru |
|
 |
perry

Založen: 28. 07. 2009 Příspěvky: 879
|
Zaslal: 12. květen 2015, 14:14:12 Předmět: |
|
|
No windows se většinou používá MSVC, ale pokud potřebuješ kód multiplatformní, není gcc od věci minimálně na testovací build. Nebo pokud máš knihovny a k nim čistý makefile, tak je ti MSVC celkem k ničemu, nebo to přidělává práci. _________________ Perry.cz |
|
Návrat nahoru |
|
 |
VODA

Založen: 29. 07. 2007 Příspěvky: 1721 Bydliště: Plzeň
|
Zaslal: 12. květen 2015, 15:30:18 Předmět: |
|
|
Tak jsem to vyřešil...
Windows 8 si nějak označil g++.exe a kdykoliv se cokoliv v adresáři mingw/bin jmenovalo g++, nešlo to spustit...
Našel jsem tedy staré archívy pro MinGW, ze kterých jsem si kdysi mingw adresář sestavoval, vše rozbalil a pak jsem chybějící soubory doplnil tím, co jsem tam měl původně.
Pochopitelně, když to bylo v adresáři C:\mingw tak to nešlo (opět nějaký borčus ve Windows 8 ), takže jsem adresář přejmenoval na mingwX. A už to jelo...
g++ začalo kompilovat...
Jenže program nešel slinkovat. Na jednom fóru jsem našel, že stačí přejmenovat collect2.exe (C:\mingwx\libexec\gcc\mingw32\3.4.2\collect2.exe) a začne to chodit. Začlo... už kompiluji.
Hurá... _________________ Opravdovost se pojí s trýzní... |
|
Návrat nahoru |
|
 |
Zhuleny
Založen: 31. 01. 2012 Příspěvky: 28
|
Zaslal: 14. květen 2015, 12:35:21 Předmět: |
|
|
Dufam ze prilis nezavadzam alebo zle neinformujem, ale mam dojem ze Microsoft sa snazi o bezpecnost windows tym ze aplikaciam len tak nedovoluje zapis do inych adresarov nez v akom su, a pokial niesu v program files tak tak ani vo vnorenych adresaroch.
Nieco taketo o win8+ som sa docital ked som riesil svoj problem z pristupovimy pravamy k zapisu do suborov.
ALe po spusteni aplikacie ako administrator by s tym nemal win robit problemy. |
|
Návrat nahoru |
|
 |
VODA

Založen: 29. 07. 2007 Příspěvky: 1721 Bydliště: Plzeň
|
Zaslal: 15. květen 2015, 16:31:25 Předmět: |
|
|
Tak tohle mi ale vysvětlete. Do dneška jsem kompiloval úplně bez problémů a dneska z ničeho nic opět stejná chyba. A to jsem jen spustil počítač a zapnul eclipse, stejně jako každý den...
Koukám, že kompatibilita Microsoftu vůbec nic neříká...  _________________ Opravdovost se pojí s trýzní... |
|
Návrat nahoru |
|
 |
VODA

Založen: 29. 07. 2007 Příspěvky: 1721 Bydliště: Plzeň
|
Zaslal: 15. květen 2015, 16:37:36 Předmět: |
|
|
Taková malá perlička... pokud nakopíruji g++ do jiného adresáře, tak jde v pohodě... tak tohle jako programátor vůbec nechápu... _________________ Opravdovost se pojí s trýzní... |
|
Návrat nahoru |
|
 |
TeaTime
Založen: 17. 06. 2011 Příspěvky: 264
|
Zaslal: 15. květen 2015, 17:06:20 Předmět: |
|
|
Jo, s build systémama je to pokaždý pakárna.
Už jsem strávil 3 dny snahou přidat do build systému cocos2d-x knihovnu Google Play Games Service. Člověk by čekal, že když je to jeden adresář s .h souborama a 3 soubory se statickýma (.a) knohovnama, tak to musí být úkol tak na 10 minut max. A ono ne. Málem mě to donutilo naučit se jak se scriptuje cmake . Dneska se to konečně povedlo. |
|
Návrat nahoru |
|
 |
VODA

Založen: 29. 07. 2007 Příspěvky: 1721 Bydliště: Plzeň
|
Zaslal: 15. květen 2015, 20:01:40 Předmět: |
|
|
Tak jsem přešel na MinGW64, nějakým záhadným způsobem se mi povedlo ho nastavit tak, abych mohl kompilovat svoje zdrojáky. Jenže ejhle... tohle MinGW je nějaké striktnější... GLvoid, ALvoid a ALCvoid, což jsou typedefy na void, nelze použít jako void parametr u metod (např. int function(ALvoid); ). Což je podle mě ta největší blbost, kterou jsem kdy viděl... nemohu tak používat OpenGL ani OpenAL... dobře, takže jsem si headery upravil, vše jsem změnil na čistý void...
Další věc, u templatů... mám třídu, která má privátní Ctor a Dtor, ale má šablonovou třídu jako frienda... doteď jsem to mohl v klidu zkompilovat, ale ne, teď to prostě nejde... a nejsem jediný, kdo nad tím kroutí hlavou, vygooglil jsem stovky dotazů na stejný problém, ale bez odpovědi...
Kdybych se vykašlal na Windows 8, jak jsem původně chtěl, mohl jsem být v klidu, protože na Windows 7 mé původní MinGW funguje bez problému a žádný mamrd (bezpečtností featury Windows 8 ) se mi tam nesnaží překazit můj vývoj...  _________________ Opravdovost se pojí s trýzní... |
|
Návrat nahoru |
|
 |
|