Pastrigau, Windows 7 + wxWidgets + MinGW + wxSmith
Iš seno nupušusio arklio ‘ferrari’ nesukursi. Nesvarbu, koks bebūtų tobulas Code::Blocks IDE, tačiau MinGW (GNU GCC for Windows) nerodo stebuklų ir neduoda to ko iš jo aš noriu. Juo labiau probleminis yra wxWidgets įrankis. Nors su Code::Blocks naudojant Code::Blocks integruotą wxSmith pluginą, galiu daryti tai ką galiu ir su MS Visual Studio – t.y. GUI elementų drag-n-drop’as, event bind’as ir t.t. neparašant nė eilutės kodo, tačiau visas tas daiktas nenori kompiliuoti taip kaip jam reikėtų, nors ir gražiai atrodo:
Bet error’ai tiesiog žudo:
————– Build: Debug in wxWidgetsDemo2 —————
Compiling: wxWidgetsDemo2App.cpp
Compiling: wxWidgetsDemo2Main.cpp
Compiling: resource.rc
Linking executable: bin\Debug\wxWidgetsDemo2.exe
c:/program files (x86)/codeblocks v10.05/mingw/bin/../lib/gcc/mingw32/4.4.1/../../../../mingw32/bin/ld.exe: cannot find -lwxmsw29ud
collect2: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 17 seconds)
1 errors, 0 warnings
Bei:
||=== wxWidgetsDemo2, Debug ===|
ld.exe||cannot find -lwxmsw29ud|
||=== Build finished: 1 errors, 0 warnings ===|
Tiesog tampa kova su kompiuteriu.
Todėl, galbūt kažkas norės užbaigti, arba pačiam vėliau pavyks tai padaryti, bet iki tol parašysiu ką padariau:
1. Nueinate į saitą:
http://sourceforge.net/projects/wxwindows/
ir atsisiunčiate wxMSW-2.9.1-Setup.exe (24.4MB) spaudami tą didelį žalią mygtuką.
Sudiegiate viską by defaulf nekeisdami instaliacijos direktorijos į C:\wxWidgets-2.9.1\
2. Pasileidžiate Code::Blocks, spaudžiate New -> Project, pasirenkate wxWidgets application, ten dar pasirenkate po to GCC kompiliatorių, suvedate SVN duomenis bet kokius (nebent rimtą TeamProject’ą kursite), bei pasirenkate sukonfigūruoti wxWidgets.
3.Toliau reikės pasirinkti wxWidgets install path’ą, jį pasirenkate tą kur instaliavote, t.y. C:\wxWidgets-2.9.1\ (jame yra direktorijos ‘lib’, ‘include’ ir kitos). Dar galite uždėti varnelę __WX_DEBUG__ environment variable’ui.
———
Pagal idėją ten jeigu norite debug ir release dar ten papildomai galima priskirti prie project build optionų, tačiau tai man nebuvo svarbu, nes projekto nepavyko sukompiliuoti, dėl blogo pradžioje buvusių error’ų.
Pagal idėją dar bandžiau ir:
T.y.
1. Windows Button’as -> Run…
2. ‘cmd’ [enter]
3. cd C:\
4.cd wxWidgets-2.9.1\build\msw
5. Na o tada jau bandžiau visai, bet naudos visvien buvo nulis:
Bandžiau taip:
C:\wxWidgets-2.9.1\build\msw> “C:\Program Files (x86)\CodeBlocks v10.05\MinGW\bin\mingw32-make” -f makefile.gcc BUILD=release SHARED=1 MONOLITHIC=1 UNICODE=1
ir šitaip:
C:\wxWidgets-2.9.1\build\msw> “C:\MinGW\bin\mingw32-make” -f makefile.gcc USE_XRC=1 SHARED=1 MONOLITHIC=1 BUILD=debug UNICODE=1
ir štai šitaip:
C:\wxWidgets-2.9.1\build\msw> “C:\Program Files (x86)\CodeBlocks v10.05\MinGW\bin\mingw32-make” -f makefile.gcc BUILD=debug SHARED=1 MONOLITHIC=1 UNICODE=1
ir netgi taip:
C:\wxWidgets-2.9.1\build\msw>“C:\Program Files (x86)\CodeBlocks v10.05\MinGW\bin\mingw32-make” -f makefile.gcc USE_XRC=1 SHARED=1 MONOLITHIC=1 BUILD=debug UNICODE=1
Tačiau visvien errorai:
if not exist ..\..\lib\gcc_dll\mswu mkdir ..\..\lib\gcc_dll\mswu
gcc -c -o gcc_mswudll\wxregex_regcomp.o -O2 -mthreads -DHAVE_W32API_H -DNDEBUG
-I..\..\include -I..\..\lib\gcc_dll\mswu -D__WXMSW__ -D_UNICODE -MTgcc_mswud
ll\wxregex_regcomp.o -MFgcc_mswudll\wxregex_regcomp.o.d -MD -MP ../../src/regex/
regcomp.c
gcc: CreateProcess: No such file or directory
mingw32-make: *** [gcc_mswudll\wxregex_regcomp.o] Error 1
arba:
cpp: Too many arguments
mingw32-make: *** [gcc_mswuddll\wxregex_regcomp.o] Error 1
Susiintalianau netgi atskirai MinGW, prisidėjau per Computer->Properties->Environment Variables MinGW ir GCC_EXEC_PREFIX, pagal BLIDE tutorial’ą:
VISTA AND WINDOWS 7 ONLY:
Once installed, copy the contents of the “MinGW\libexec\gcc\mingw32\3.4.2″ directory into “MinGW\bin”
ANY WINDOWS OS:
1.- Click the start button, right click on ‘My Computer’ >> ‘Properties’. Click the ‘Advanced Tab’ and at the bottom you will see the ‘Environment Variables’ button. Click that.
It should open up a new window with two boxes named ‘User Variables for blah’ and ‘System Variables’.
2.- Click ‘New’ for User Variables and in the ‘Variable Name’Box type MinGW. In the ‘Variable Value’ Box enter the path to the MinGW installation ie C:\MinGW. Then click OK.
3.- In the ‘System Variables’ box, scroll down until you see the variables Path. Click on it and click the edit button. In the ‘Variable Value’ box, move your curser to the end of text, add a semi colon, and put the path to your MinGW\bin directory. eg, c:\MinGW\Bin. Click ok and ok again and if you are using windows XP, you are ready to go, if you’re using Vista or Win7, you have to make one little additional step:
WINDOWS VISTA AND WINDOWS 7:
4.- The same way you have added the environment variable called MinGW (step 2), you should create an environment variable named GCC_EXEC_PREFIX and set it to c:\MinGW
Tačiau naudos visvien buvo nulis. Šiam kartui užsiknisimo užteks. Kol kas grafinį GUI C++ kalbai yra pavykę sukurti tik DOS terpei, na bent Microsoft Visual Studio projektuose, tačiau ten jau nėra tas įprastas C++, o Visual C++, kuris šiek tiek skirasi nuo C++ (nors Code::Blocks palaiko ir Visual C++).
Tiesa, NetBeans’ams su su Swing GUI API dar toli gražu iki to ką mums siūlo Microsft su savo Visual Studio GUI Api, naudojamu C#, Visual Basic, Visual C++ aplikacijoms kurti… Na bet turime tai ką turime…
