Archive for the ‘C++’ Category

Viva NetBeans 6.1

Sunday, June 15th, 2008

Una imagen vale mas que mil palabras…

¡Al fin un buen IDE de C++ para Linux! Hurra :D

Usando Boost.Python en Debian (sin bjam)

Monday, November 26th, 2007

Deberán instalar el paquete libboost-python-dev de Debian. Luego:

#include <boost/python.hpp>
using namespace boost::python;

char const* greet()
{
return “hello, world”;
}

BOOST_PYTHON_MODULE(hello)
{
def(”greet”, greet);
}

Para compilar:

gcc -shared -Wl,-soname,hello -I/usr/include \
`python2.4-config –includes` `python2.4-config –libs` \
-lboost_python -o hello.so hello.cpp

Para ejecutar:

$ python
Python 2.4.4 (#2, Apr 5 2007, 20:11:18)
[GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.
>>> import hello
>>> hello.greet
<Boost.Python.function object at 0×81a1c98>
>>> hello.greet()
‘hello, world’

C++0x Initialization Lists

Saturday, July 7th, 2007

LAM MPI en Debian Etch

Monday, June 11th, 2007

Dado el siguiente código:

#include <stdio.h>
#include “mpi.h”
int main(int argc, char **argv)
{
int taskid, numtasks;


MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &taskid);
MPI_Comm_size(MPI_COMM_WORLD, &numtasks);

printf("Soy %d y hay %d tareas en total\n", taskid, numtasks);

MPI_Finalize();
return 0;
}

Cómo compilar programas y ejecutarlos con LAM MPI en Debian Etch:

1. Instalar paquetes LAM:

apt-get install lam4c2 lam4-dev lam-runtime

2. Iniciar el servicio lamd. Esto hay que hacerlo una sola vez, cada vez que se reinicia la PC:

lamboot

3. Compilar el programa:

hcc -Wall -o programa programa.c

4. Ejecutar el programa en 4 nodos:

# mpirun.lam -np 4 programa -- "parametros"
Soy 0 y hay 4 tareas en total
Soy 1 y hay 4 tareas en total
Soy 2 y hay 4 tareas en total
Soy 3 y hay 4 tareas en total

Freetype, SDL & Unicode

Friday, June 1st, 2007

Siguiendo con Unicode, les dejo el código de un pequeño programa de prueba que hice para usar Freetype 2 con SDL para hacer rendering de texto Unicode, y (¿por ahora?) funciona solo en Linux. Si alguien pudo probarlo en otra plataforma por favor deje un comentario.

Bajar Código

freetype-sdl-unicode-test

Unicode, wstring, wchar_t

Thursday, May 31st, 2007

Compilando el siguiente código en C++ con GCC:

C:
  1. wstring texto( L"/* lasldkj ksaka jkj àáäçÇ */" );
  2. int texto_len = texto.length();

Me apareció el siguiente error:

converting to execution character set: Invalid or incomplete multibyte or wide character

¿Cómo se resuelve? Cambiando la codificación del archivo fuente. En la línea de comandos de Linux usando iconv se puede hacer muy facil:

iconv fichero.in -f iso-8859-15 -t utf-8 -o fichero.out

Si usás algún editor de texto como KDevelop, con cambiarle la codificación el Herramientas -> Codificación -> Unicode (utf8) no alcanza, ya que solo estás cambiando la forma de interpretar el archivo, y no los caracteres mismos (en la parte en donde dice "àáäçÇ" aparecen signos de pregunta: "?????").

¡Viva Unicode!