Code::Blocks Versiones Nightly
Introducción
Actualmente, la última versión "oficial" de Code::Blocks es la 20.03, que data de marzo de 2020. El IDE sigue siendo válido, a pesar de que han pasado años desde entonces, pero es posible que echemos de menos algunas actualizaciones.
Por ejemplo, si instalamos la versión que incluye el compilador, veremos que contiene la versión 8.1.0 de MinGW. En el momento de escribir este artículo, en abril de 2024, la última versión de MinGW es la 13.02. Esto no es un gran inconveniente, ya que podemos descargar la versión de IDE sin compilador y descargar MinGW usando MSYS2.
Otro posible inconveniente es que las plantillas de proyecto no están actualizadas para las últimas versiones de algunas librerías. Por poner un ejemplo, las plantillas para aplicaciones basadas en wxWidgets solo llegan hasta la versión 3.1, y la versión actual es la 3.2. De nuevo, esto no es impedimento para usar las versiones más recientes, pero requiere editar las opciones de proyecto para adaptarlas a las nuevas versiones de librerías, lo que resta utilidad a usar un IDE. También podemos agregar nuestras propias plantillas.
Versiones nightly
Las versiones nightly son versiones del IDE Code::Blocks complementarias, que no están disponibles para descarga desde la página oficial de Code::Blocks, pero podemos considerar como "oficiales", ya que están creadas por los mismos desarrolladores.
Se publican regularmente en el foro de Code::Blocks, bajo el asunto "nightly builds". Son relativamente sencillas de instalar, se actualizan frecuentemente y en mi opinión son preferibles a la versión 20.03.
Funcionamiento
Si entramos en el hilo del foro veremos un mensaje resaltado Before you use a nightly make sure you understand how it works, que nos avisa de que antes de usar una de estas versiones nos aseguremos de que entendemos cómo funciona. Contiene un enlace que explica eso, y que paso a traducir:
1. ¿Qué es una compilación nocturna?
Las compilaciones nocturnas se proporcionan "tal cual". Son distribuciones "binarias", normalmente proporcionadas diariamente, que representan el último y mejor estado de las fuentes de codeblocks. Normalmente son bastante estables, pero sin embargo pueden introducir nuevos errores, regresiones, y por otro lado pueden introducir nuevas características, correcciones de errores, ....
2. ¿Qué contiene una versión nocturna?
Antes de describir lo que contienen las compilaciones, sería mejor empezar con lo que NO contienen las compilaciones nocturnas. Para empezar, hágase la siguiente pregunta: ¿qué es Code::Blocks?
Bueno, es un IDE (Entorno de Desarrollo Integrado), lo que significa que integra diferentes herramientas y las hace trabajar juntas. Así que CB NO es un compilador (ni MS, ni Borland, ni GCC), no es un depurador (ni MS, ni GDB), ¡no es un sistema makefile! Así que estos componentes NO son parte de CB, y por lo tanto tampoco son parte de las distribuciones nightly build. Sin embargo, varios de los componentes de desarrollo mencionados pueden combinarse para trabajar juntos a través de CB. Por ejemplo, puede conectar el compilador GCC y el depurador GDB y compilar y depurar sus aplicaciones escritas a mano.
CB está siendo compilado con GCC, en Windows esto se hace utilizando el port MinGW. Dado que CB es una aplicación multihilo, necesita rutinas de soporte que le proporcionen las funcionalidades multihilo. Esto se proporciona mediante el port MinGW, más específicamente la "mingwm10.dll", en cada post anunciando una nueva nightly build puedes encontrar un enlace para descargar esta dll.
CB tiene una GUI, hay varias formas de crear una GUI, puedes codificar usando el API de Windows (funciona solo en Windows) o puedes usar MS-MFC (funciona solo en Windows) o puedes usar alguna abstracción de GUI's de terceros, como QT, wxWidgets, Tk, ...
CB usa wxWidgets, además de la abstracción GUI, wxWidgets trae muchas más abstracciones (cadenas, archivos, streams, sockets, ...) y lo bueno es que : wxWidgets trae estas abstracciones para muchas plataformas diferentes (Windows, Linux, Apple, ...). Esto significa que CB necesita estar equipado con las funcionalidades reales de wxWidgets (es decir, el código binario que hace el trabajo real), esto se está logrando a través de una dll: "wxmsw28u_gcc_cb.dll". De nuevo en cada post de anuncio de una nueva nightly build puedes encontrar un enlace de descarga para esta dll.
3. Cómo instalar una versión nocturna
Muy bien, es hora de una pequeña recapitulación:
- CB nightly
- mingwm10.dll
- wxmsw28u_gcc_cb.dll
Esas son las 3 cosas que necesitamos para instalar y poner en marcha un nigthly build. Los 3 están disponibles en su propio archivo zip, comprimidos utilizando el excelente y gratuito 7-zip (www.7-zip.org). Solo tienes que conseguir tu copia de 7-zip para descomprimir.
Pasos finales :
- Descomprimir el CB nightly en algún directorio
- Descomprimir ambas dll's : requisito : tienen que estar en tu PATH, lo mas faáil es descomprimir ambas en el mismo directorio donde descomprimiste la nightly, para que residan junto al codeblocks.exe .
Realizando estos sencillos pasos tu nightly estará lista para rodar.
4. ¿Qué pasa con RC2?
Bueno RC2 y las nightlies es mejor no mezclarlas, pueden pelear entre ellas, usan diferentes versiones de las 2 dll's mencionadas. Así que lo mejor es instalar tu nightly en un directorio diferente al utilizado para tu instalación de RC2. Para ello, simplemente elimina RC2. En el caso de que hayas descargado la versión RC2 que contiene el compilador GCC (¿y el depurador?), puedes reutilizar esos programas, pero aquí te aconsejaría que tampoco los usaras, mientras tanto hay versiones más nuevas del port MinGW de GCC. En el wiki puedes encontrar más detalles sobre cómo instalar manualmente el port de GCC de Mingw, aquí tienes algunos enlaces :
- http://wiki.codeblocks.org/index.php?title=Nightly_Cookbook
- http://wiki.codeblocks.org/index.php?title=MinGW_installation#gcc_3.4.4_manual_install
- http://wiki.codeblocks.org/index.php?title=Installing_Code::Blocks#Alternative_method_for_installing_a_nightly_build
5. Actualizar la nightly
Si has seguido las recomendaciones, tus compiladores y depuradores están separados de CB. Esto significa que puede borrar su directorio de instalación nocturna de CB sin ningún daño, ya que su configuración de usuario se almacena en su directorio de perfil de usuario (por ejemplo, default.conf), y descomprimir la nueva compilación nocturna, o puede descomprimir su nueva compilación nocturna sobre su compilación nocturna anterior. En este último caso, ¡¡¡asegúrese de sobrescribir todos los archivos!!!
6. Informar de fallos/errores/ideas
Ahora que ha instalado la versión nocturna y la está utilizando, es posible que se encuentre con errores, o que tenga ideas brillantes para nuevas características, en tal caso le pedimos ( :twisted: :twisted:) que siga el protocolo que se especifica aquí :
- Puedes comentar tus problemas en el hilo de la nightly build en la que te los has encontrado.
- Especifica SIEMPRE qué versión nocturna está utilizando, incluso si publicas en el hilo de una determinada versión nocturna, es muy posible que estés discutiendo un problema que está presente desde hace más tiempo.
- Una vez que estés seguro de que es un error (100% reproducible, o de la retroalimentación de otros usuarios), dirígete a nuestra página del proyecto en berlios y reportar su error allí, en el foro se perderá, no podemos memorizar todos los mensajes ;-)
Este es el enlace a berlios : http://developer.berlios.de/projects/codeblocks/
Lo mismo se aplica para las peticiones/sugerencias de características que puedas tener. Una vez más los enlaces, enlaces directos para cada tipo de feedback :
--> bugs: http://developer.berlios.de/bugs/?group_id=5358 (utiliza el enlace "Submit A New Bug" de la página)
--> feature requests: http://developer.berlios.de/feature/?group_id=5358 (utilice el enlace "Submit A Feature Request" )
RC2 hace referencia a la última versión oficial, en este caso, la 20.03.
Instalación
Así que, según esto, parece sencillo instalar una de estas versiones.
Para empezar, y como precaución, si ya has instalado la versión 20.03, con o sin compilador, recomiendo hacer una copia de seguridad o renombrar el directorio donde está instalado. De este modo siempre podremos volver al punto de partida si algo no sale bien.
A continuación podemos abrir el hilo de las versiones nightly en el foro y buscar la última actualización. Las actualizaciones son frecuentes, de modo que no indicaré la entrada concreta para la última versión.
En cualquier caso, descargaremos los tres ficheros desde los enlaces indicados:
- Las DLL de wxWidgets unicode.
- Las DLL de Mingw64.
- Los binarios de Code::Blocks.
Normalmente estos ficheros son para instalar en un Windows de 64 bits, pero en respuestas en el mismo hilo suele haber disponibles descargas para otros sistemas operativos y para versiones de Windows de 32 bits.
Una vez descargados los descomprimiremos en la carpeta en que normalmente instalaríamos Code::Blocks.
Los ficheros están comprimidos en formato 7z, de modo que probablemente tendrás que instalar 7zip desde la página oficial.
Si ya teníamos instalada la versión 20.03, y hemos renombrado la carpeta donde estaba instalada, en lugar de desinstalarlo, los accesos directos y la configuración seguirán funcionando con la nueva versión. Si por el contrario, hemos desinstalado el IDE o no lo teníamos instalado previamente, tendremos que añadir los accesos directos manualmente.
Actualización*
Es muy recomendable eliminar los ficheros de configuración creados por versiones anteriores de Code::Blocks. Si no lo hacemos es muy probable que no podamos acceder a las opciones del compilador desde "Build options". Además, desde la última versión oficial, la 20.03, ha habido nuevas versiones de C++, y si queremos aprovechar las nuevas características será necesario activar algunas opciones que no existen en esa versión.
Los ficheros de configuración se guardan en una carpeta de sistema, a la que podemos acceder con la ruta %appdata%. Bastará con renombrar la carpeta CodeBlocks. Cuando ejecutemos por primera vez la nueva versión nocturna que hemos instalado se creará una nueva carpeta de opciones de forma automática.
Si no queremos perder los valores previos de nuestras personalizaciones (settings), como las definiciones de variables globales, del editor, etc, podemos recuperar el fichero original "default.conf" desde la carpeta %appdata%CodeBlocks antes de eliminarla completamente, o desde la carpeta renombrada, si hemos optado por esa opción.
Instalar el compilador
Instalaremos a continuación, si no lo estaba ya, la última versión de MinGW usando MSYS2, y ya tenemos el IDE preparado para crear nuestras aplicaciones C++.
Lo primero que notaremos es que ahora el IDE arranca más rápido, y además tendremos actualizadas muchas de las plantillas para aplicaciones basadas en librerías, y probablemente nuevas opciones para el compilador, etc.