Página principal
Configurando wxWidgets en CodeBlocks
xsetaseta@gmail.com
El otro día estuve viendo un magnífico video donde explicaba como configurar wxWidgets en CodeBlocks bajo windows.
https://www.youtube.com/watch?v=LZacAgSBWa0
Son 26 minutos donde explica muy bien como configurar todo para poder compilar programas en windows.
En mi caso he utilizado:
Versiones de programas usadas
wxWidgets-3.1.1 - wxWidgets-2.8.12 - CodeBlocks 17.12 - tdm-gcc-5.1.0-3
He añadido el el Path de busqueda de windows el lugar de binarios del compilador.
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\TDM-GCC-32\bin
Entrando en la consola y cambiando de directorio.
cd c:\wxWidgets-3.1.1\build\msw\
o
cd c:\wxWidgets-2.8.12\build\msw\
Para realizar las compilaciones de las librerías he utilizado la opción del compilador -j4 (4 procesadores) , que utiliza todos los procesadores de la máquina, reduciéndose bastante el tiempo de compilación. También en mi caso lo hago para una máquina de 32bits.
-Para compilar las librerías estáticas usar lo siguiente:
mingw32-make -j4 -f makefile.gcc RUNTIME_LIBS=static USE_XRC=1 MONOLITHIC=1 SHARED=0 UNICODE=1 BUILD=release TARGET_CPU=X32 CXXFLAGS="-std=gnu++11"
-Para compilar las librerías dinámicas usar lo siguiente:
mingw32-make -j4 -f makefile.gcc RUNTIME_LIBS=dynamic USE_XRC=1 MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release TARGET_CPU=X32 CXXFLAGS="-std=gnu++11"
Esto suele tardar bastante, dependiendo del tipo de procesador que tenga vuestro ordenador.
He realizado la compilación para las dos versiones de las librerías wxWidgets (3.1.1 y 2.8.12) , por lo cual el trabajo ha sido doble.
Para los que no se quieran complicar mucho he creado un fichero donde se encuentran compiladas las dos librerías (wxWidgets-3.1.1 - wxWidgets-2.8.12) junto con el compilador tdm-gcc.
Solo tendrás que descomprimirlo en C:\ y empezar a utilizarlo. Tamaño 129M.
https://drive.google.com/file/d/1idPA5NczyadfQ4gUThiLbyIYrYJEkj05/view?usp=sharing
Para que el CodeBlocks no de errores en la compilación por falta de librerías he tenido que cambiar varias cosas en el menú del proyecto en Opciones de construcción.
Si compilamos programas en estático, cambiar C:\wxWidgets-3.1.1\lib\gcc_dll por C:\wxWidgets-3.1.1\lib\gcc_lib
Listado de la consola de construcción
-------------- Build: Release in borrawx311 (compiler: GNU GCC Compiler)---------------
mingw32-g++.exe -pipe -mthreads -D__GNUWIN32__ -D__WXMSW__ -DwxUSE_UNICODE -Wall -O2 -IC:\wxWidgets-3.1.1\include -IC:\wxWidgets-3.1.1\lib\gcc_dll\mswu -c "C:\Documents and Settings\Administrador\Mis documentos\borrawx311\borrawx311App.cpp" -o obj\Release\borrawx311App.o
mingw32-g++.exe -pipe -mthreads -D__GNUWIN32__ -D__WXMSW__ -DwxUSE_UNICODE -Wall -O2 -IC:\wxWidgets-3.1.1\include -IC:\wxWidgets-3.1.1\lib\gcc_dll\mswu -c "C:\Documents and Settings\Administrador\Mis documentos\borrawx311\borrawx311Main.cpp" -o obj\Release\borrawx311Main.o
windres.exe -IC:\wxWidgets-3.1.1\include -IC:\wxWidgets-3.1.1\lib\gcc_dll\mswu -J rc -O coff -i C:\DOCUME~1\ADMINI~1\MISDOC~1\BORRAW~1\resource.rc -o obj\Release\resource.res
mingw32-g++.exe -LC:\wxWidgets-3.1.1\lib\gcc_dll -o bin\Release\borrawx311.exe obj\Release\borrawx311App.o obj\Release\borrawx311Main.o obj\Release\resource.res -s -mthreads -lwxmsw31u -lwxpng -lwxjpeg -lwxtiff -lwxzlib -lshlwapi -lversion -loleacc -lUxTheme -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -luuid -lcomctl32 -lwsock32 -lodbc32 -lshlwapi -lversion -mwindows
Output file is bin\Release\borrawx311.exe with size 774.50 KB
Process terminated with status 0 (0 minute(s), 8 second(s))
0 error(s), 0 warning(s) (0 minute(s), 8 second(s))
El tamaño de los ejecutables resultan ser mas del doble en las dos en las diferentes versiones de las librerías.
He realizado un video de un programa realizado con CodeBlocks
https://youtu.be/E6WA2n_Uib0
Para una mejor visión de todas las opciones de compilación, muestro el fichero resource.rc.
resource.rc |
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <CodeBlocks_project_file> <FileVersion major="1" minor="6" /> <Project> <Option title="borrawx311" /> <Option pch_mode="2" /> <Option compiler="gcc" /> <Build> <Target title="Release"> <Option output="bin/Release/borrawx311" prefix_auto="1" extension_auto="1" /> <Option object_output="obj/Release/" /> <Option type="0" /> <Option compiler="gcc" /> <Option projectLinkerOptionsRelation="2" /> <Compiler> <Add option="-O2" /> <Add directory="C:/wxWidgets-3.1.1/lib/gcc_dll/mswu" /> </Compiler> <ResourceCompiler> <Add directory="C:/wxWidgets-3.1.1/lib/gcc_dll/mswu" /> </ResourceCompiler> <Linker> <Add option="-s" /> <Add library="libwxmsw31u.a" /> <Add library="libwxpng.a" /> <Add library="libwxjpeg.a" /> <Add library="libwxtiff.a" /> <Add library="libwxzlib.a" /> <Add library="libshlwapi" /> <Add library="libversion" /> <Add library="liboleacc" /> <Add library="libUxTheme" /> <Add directory="C:/wxWidgets-3.1.1/lib/gcc_dll" /> </Linker> </Target> </Build> <Compiler> <Add option="-pipe" /> <Add option="-mthreads" /> <Add option="-D__GNUWIN32__" /> <Add option="-D__WXMSW__" /> <Add option="-DwxUSE_UNICODE" /> <Add option="-Wall" /> <Add directory="C:/wxWidgets-3.1.1/include" /> </Compiler> <ResourceCompiler> <Add directory="C:/wxWidgets-3.1.1/include" /> </ResourceCompiler> <Linker> <Add option="-mthreads" /> <Add library="libkernel32.a" /> <Add library="libuser32.a" /> <Add library="libgdi32.a" /> <Add library="libwinspool.a" /> <Add library="libcomdlg32.a" /> <Add library="libadvapi32.a" /> <Add library="libshell32.a" /> <Add library="libole32.a" /> <Add library="liboleaut32.a" /> <Add library="libuuid.a" /> <Add library="libcomctl32.a" /> <Add library="libwsock32.a" /> <Add library="libodbc32.a" /> <Add library="libshlwapi.a" /> <Add library="libversion.a" /> </Linker> <Unit filename="borrawx311App.cpp" /> <Unit filename="borrawx311App.h" /> <Unit filename="borrawx311Main.cpp" /> <Unit filename="borrawx311Main.h" /> <Unit filename="resource.rc"> <Option compilerVar="WINDRES" /> </Unit> <Unit filename="wxsmith/borrawx311frame.wxs" /> <Extensions> <code_completion /> <envvars /> <debugger /> <lib_finder disable_auto="1" /> <wxsmith version="1"> <gui name="wxWidgets" src="borrawx311App.cpp" main="borrawx311Frame" init_handlers="necessary" language="CPP" /> <resources> <wxFrame wxs="wxsmith/borrawx311frame.wxs" src="borrawx311Main.cpp" hdr="borrawx311Main.h" fwddecl="0" i18n="1" name="borrawx311Frame" language="CPP" /> </resources> </wxsmith> </Extensions> </Project> </CodeBlocks_project_file> |
Hasta pronto.
JUAN GALAZ
Bibliografía:
https://www.youtube.com/watch?v=LZacAgSBWa0
No hay comentarios:
Publicar un comentario