[Kde-devel-es] Migrando KLog... ¿Alguna sugerencia?
Albert Astals Cid
aacid at kde.org
Sat Sep 5 13:23:04 CEST 2009
A Dijous, 3 de setembre de 2009, Jaime Robles va escriure:
> Buenas de nuevo,
>
> Ya tengo compilando KLog... con MUCHOS "warnings" pero por lo menos
> compila con Qt4/KDE4 ':-)
>
> Ahora estoy con el problema de que muere nada más arrancarlo y no se por
> dónde tirar.
>
> Supongo que será un problema derivado de mi falta de conocimiento de
> programación... por lo que probablemente esté haciendo una barbaridad... y
> en eso confío para pedir por aquí algo de ayuda, que sea una barbaridad
> fácil de identificar por alguien con los mínimos conocimientos.
>
>
> ¿Se anima alguien a compilar el código y ver el error que da? A ver si
> alguien me puede orientar en el buen camino... por favor.
>
> El código es una "guarrada"... lo era antes de la migración pero lo que
> tengo ahora... bueno, me da hasta vergüenza publicarlo!! X'DDD
>
> Está aquí:
> http://jaime.robles.es/klog/download/unstable/
>
> Muchas gracias...
Te falta un cmake check para libhamlib-dev
El código no compila tienes
./src/awarddxcc.h:28:const int ENTITIES = 400;
./src/entity.h:29:#define ENTITIES 340
./src/awardwaz.h:28:const int ENTITIES = 400;
./src/awardiota.h:27:const int ENTITIES = 400;
cuando alguno de los 3 const incluye a entity.h queda algo como
const int 340 = 400;
y el compilador dice
error: expected unqualified-id before numeric constant
Una vez comentado el #define de entity.h compila y peta al arrancar
El señor valgrind nos dice
Use of uninitialised value of size 8
at 0x78DC3D4: QComboBox::d_func() const (qcombobox.h:303)
by 0x78CF373: QComboBox::count() const (qcombobox.cpp:1264)
by 0x43A6B5: QComboBox::insertStringList(QStringList const&, int)
(qcombobox.h:279)
by 0x443C90: Setup::setRig() (setup.cpp:887)
by 0x4484E2: Setup::Setup(QWidget*, char const*) (setup.cpp:46)
by 0x422C37: Klog::slotKlogSetup() (klog.cpp:4597)
by 0x422B72: Klog::readConf() (klog.cpp:2316)
by 0x438164: Klog::Klog(QWidget*, char const*) (klog.cpp:109)
by 0x43CC28: main (main.cpp:59)
Basicamente como la culpa no es de Qt sino tuya (por definicion en el 99% de
los casos) esto significa que el problema esta en setup.cpp linea 887.
P: ¿Que estás haciendo ahi?
R: Usar comboBoxTrvList.
P: ¿Que puede haber de malo en eso?
R: Que no se haya hecho new del puntero
P: Pero si es parte de mi fichero ui! Eso significa que es culpa de Qt
R: No, eso significa que no has llamado a setupUi.
Haz setupUi(this) en la primera linea del constructor
P: Pero entonces no compila!
R: Porque en el setupui.ui dices que quieres que tu padre sea un QDialog
y luego en setup.h usas un QWidget. Haz que la clase Setup sea un QDialog
P: Pero entonces sigue sin arrancar!
R: El señor gdb te servirá para ver que tienes un bucle infinito en el
que Klog::readConf llama a Klog::slotKlogSetup que llama a Klog::readConf
El como arreglar este último problema ya es cosa tuya.
Albert
More information about the Kde-devel-es
mailing list