Page 1 sur 1

[Pikdev] Problème à la compilation ! (résolu)

Publié : mer. 18 juin 2008, 22:33
par PillOow
Bonsoir à tous ! :wink:

Je solicite votre aide parce que là y'en a marre ! :lol:

Voilà, il m'est impossible de compiler pikdev avec yaourt, ça coince au niveau des libs de qt3. Idem pour piklab.

Le message d'erreur me dit qu'il n'arrive pas à localiser les libs qt3 qui doivent être une version comprise entre la 3.1 et inférieur à la 4. J'ai les version 3.3 installées. Donc je ne pense pas que ça coince de ce coté.

Voici le message d'erreur:

Code : Tout sélectionner

checking for Qt... configure: error: Qt (>= Qt 3.1 (20021021) and < 4.0) (headers and libraries) not found. Please check your installation!
J'ai remarqué aussi que qt3 n'est pas spécifié dans makedepends du PKGBUILD. Est-ce grave ? Ca change rien ?

J'ai jeter un coup d'oeil dans le config.log et ça me donne ça:

Code : Tout sélectionner

configure:28183: checking for Qt
configure: 28248: /usr/lib/qt3/include/qstyle.h
configure: 28248: /usr/lib/qt3/qstyle.h
configure: 28248: /usr/lib/qt/include/qstyle.h
configure: 28248: /usr/lib/qt/qstyle.h
configure: 28248: /usr/share/qt3/include/qstyle.h
configure: 28248: /usr/share/qt3/qstyle.h
configure: 28248: /usr/local/qt/include/qstyle.h
configure: 28248: /usr/include/qt/qstyle.h
configure: 28248: /usr/include/qstyle.h
configure: 28248: /usr/X11R6/include/X11/qt/qstyle.h
configure: 28248: /usr/X11R6/include/qt/qstyle.h
configure: 28248: /usr/X11R6/include/qt2/qstyle.h
configure: 28248: /usr/include/qt3/qstyle.h
configure: 28248: ./qstyle.h
tried NO
tried /usr/lib/qt3/lib
tried /usr/lib/qt3
tried /usr/lib/qt/lib
tried /usr/lib/qt
tried /usr/share/qt3/lib
tried /usr/share/qt3
tried /usr/X11R6/lib
tried /usr/lib
tried /usr/local/qt/lib
tried /usr/lib
configure:28366: rm -rf SunWS_cache; g++ -o conftest -Wnon-virtual-dtor -Wno-long-long -Wundef -Wall -W -Wpointer-arith -Wwrite-strings -ansi -D_XOPEN_SOURCE
=500 -D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts -O2 -march=i686 -mtune=generic -O2 -pipe -Wformat-security -Wmissing-format-attribute -fno-exc
eptions -fno-check-new -fno-common -INO -I.  -DQT_THREAD_SUPPORT  -D_REENTRANT  -LNONE -L/usr/lib   conftest.cc  -lqt-mt -lpng -lz -lm -ljpeg -ldl  -lXext -l
X11 -lSM -lICE  -lpthread 1>&5
conftest.cc:2:21: error: qglobal.h: No such file or directory
conftest.cc:3:26: error: qapplication.h: No such file or directory
conftest.cc:4:21: error: qcursor.h: No such file or directory
conftest.cc:5:27: error: qstylefactory.h: No such file or directory
conftest.cc:6:34: error: private/qucomextra_p.h: No such file or directory
conftest.cc:7:8: warning: "QT_VERSION" is not defined
conftest.cc:8:2: error: #error 1
conftest.cc: In function 'int main()':
conftest.cc:12: error: 'QStyleFactory' was not declared in this scope
conftest.cc:12: error: expected `;' before '::' token
conftest.cc:13: error: 'QCursor' was not declared in this scope
conftest.cc:13: error: expected `;' before 'c'
configure:28369: $? = 1
configure: failed program was:
#include "confdefs.h"
#include <qglobal.h>
#include <qapplication.h>
#include <qcursor.h>
#include <qstylefactory.h>
#include <private/qucomextra_p.h>
#if ! (QT_VERSION >= 0x030200)
#error 1
#endif
Effectivement, il n'y a rien dans /usr/lib/qt3 et autres joyeusetés. Je me suis dis qu'un lien symbolique réglerait le problème, mais je n'arrive pas à localiser les libs qt3.

Un 'whereis qt3' ne me retourne rien.

Oh et puis ça mange pas de pain, voici le PKGBUILD de l'appli en question:

Code : Tout sélectionner

#Contributor: Petteri Aimonen <jpa@aur.mail.kapsi.fi>
pkgname=pikdev
pkgver=0.9.2
pkgrel=1
pkgdesc="PIC Development IDE for KDE"
license="GPL"
url="http://pikdev.free.fr/"
depends=(qt kdelibs gputils)
source=(http://pikdev.free.fr/$pkgname-$pkgver-$pkgrel.tar.gz)
md5sums=(fd15cdb53703dc55f21f640e63b98f98)

arch=('i686')

build() {
  cd $startdir/src/$pkgname-$pkgver-$pkgrel
  ./configure --prefix=/usr
  make || return 1
  make DESTDIR=$startdir/pkg install
}
Voilà c'est tout ! :roll:

Sinon ça va vous ? La famille toussa ? :)

Publié : ven. 20 juin 2008, 00:46
par PillOow
Toujours pas d'idées ? :(

De mon coté, j'ai repris le PKGBUILD fourni avec yaourt lors de l'installation de pikdev, j'ai juste rajouté une ligne arch=(i686) et j'ai lancé un "makepkg" dans un répertoire src dans mon /home.

Le problème de Qt n'est plus, la compilation se lance, mais s'arrête a ça:

Code : Tout sélectionner

pkp.cc: In member function ‘int prog::read_config()’:
pkp.cc:85: erreur: ‘strcpy’ was not declared in this scope
pkp.cc:96: erreur: ‘strcat’ was not declared in this scope
make[2]: *** [pkp.o] Erreur 1
make[2]: quittant le répertoire « /home/pilloow/src/pikdev/src/pikdev-0.9.2-1/src »
make[1]: *** [all-recursive] Erreur 1
make[1]: quittant le répertoire « /home/pilloow/src/pikdev/src/pikdev-0.9.2-1 »
make: *** [all] Erreur 2
==> ERREUR: La compilation a échoué.
    Abandon...

Publié : ven. 20 juin 2008, 00:52
par marc[i1]
Salut,

attention sous Arch, Qt 3 est nommé qt3, c'est Qt4 qui est nommé qt.
Modifie ton PKGBUILD en conséquence.

Publié : ven. 20 juin 2008, 01:08
par PillOow
Merci pour l'info ! ;)

Malheureusement ça n'y change rien (pour ce qui est de yaourt). Le pire c'est que la compilation plante sur les fonctions de string.h me disant qu'elle ne sont pas déclarées. J'ai été faire un tour dans le fichier pkp.cc en question, la ligne '#include <string>' est présente...

Pourquoi mes fonctions ne sont pas déclarées ?

Publié : ven. 20 juin 2008, 10:36
par marc[i1]
Tu as regardé sur le site ?
http://pikdev.free.fr/installation.html

Publié : ven. 20 juin 2008, 11:49
par tuxce
salut,
PillOow a écrit :

Code : Tout sélectionner

pkp.cc:85: erreur: ‘strcpy’ was not declared in this scope
pkp.cc:96: erreur: ‘strcat’ was not declared in this scope
ces 2 erreurs (et bien d'autres qui pourraient apparaitre) sont dûes à la dernière maj de gcc en 4.3.x, ce dernier a besoin des header C déclarés explicitement (alors qu'avant, inclure un header c++ incluait automatiquement celui de c)

il faut l'indiquer au mainteneur du paquets pour qu'il modifient son PKGBUILD
et même l'indiquer aux dev pour qu'ils incluent les bons fichiers.

Publié : ven. 20 juin 2008, 14:07
par PillOow
Merci tuxce, je vais essayé de contacter les devs mais ce soft n'est plus en développement depuis 2005 ! Pour Piklab, je verrais après. Concrétement, que doit-il déclarer aujourd'hui dans ses sources ? #include <string.h> ?

J'ai trouvé quelque chose d'interessant dans le lien de marc[i1], il y aurait une version pré-compilé de pkp fournis avec le package.

Publié : ven. 20 juin 2008, 14:25
par tuxce
tout dépend des en-tetes inclus...
tu peux te baser sur ce post pour modifier le PKGBUILD:
http://forums.archlinux.fr/post16350.html#16350

Publié : mar. 24 juin 2008, 00:07
par PillOow
Merci pour ta réponse tuxce. Malheureusement, j'ai pas réussi avec la méthode à la rache, je cherche donc des infos sur le patch mais j'ai pas trouvé grand chose. Faut dire que j'ai pas beaucoup cherché, mais c'est parce que je cherche à résoudre un autre problème (bug du shell). J'ai essayé d'include les <headers.h> directement dans le config.h mais sans succès.

C'est fort dommage parce qu'il ne me manque plus que cette appli pour lacher définitevement Debian. Bref c'est pas pressé, je continuerais mes recherches plus tard et vous tiendrez au courant si je trouve une solution.

Merci

Publié : ven. 04 juil. 2008, 16:53
par PillOow
Résolu !

Il fallait inclure <string.h> directement dans le fichier qui posait problème, c'est à dire pkp.cc. Je n'y arrivais pas avec la méthode cat "EOF" src/pkp.cc.
Donc j'ai modifié directement le fichier pkp.cc pour y inclure <string.h> et j'ai relancé yaourt en supprimant la ligne source= du PKGBUILD pour ne pas que yaourt re-télécharge les sources, les extrait et écrase la modification du pkp.cc. J'ai croisé les doigts pour qu'il n'y ai pas une plétaure de fichiers à modifier de cette manière mais par chance non.

Partisan de la méthode à la rache :marteau2:

Publié : ven. 04 juil. 2008, 16:57
par warnaud
Hihi :)
Vive la rétro compatibilité ;)

Publié : ven. 04 juil. 2008, 17:22
par PillOow
J'espère ne pas avoir ce même problème avec d'autres paquets à l'avenir. Cette MAJ de gcc est assez contraignante. Et puis quand tu vois la tronche des patchs ça donne tout de suite moins envie d'en faire un. Perso j'y comprend que dalle, mais tout s'apprend. Par chance il existe des patchs pour les logiciels les plus utilisé, les autres seront mis à jour. La bonne nouvelle c'est que je vais pouvoir virer Debian et me consacrer à Arch ! :majorette:

Il faut que je pense à laisser un commentaire sur Aur pour pikdev à propos de ce problème mais d'abord I must improve my english. :roll: