Archive dans 2020

GCC Référence indéfinie vers vtable

Lors de l’édition de liens d’une application utilisant une de mes librairies, j’ai eu les erreus suivantes.

libAPI.so : référence indéfinie vers « vtable for API::wxParameterManager
libAPI.so : référence indéfinie vers « typeinfo for API::wxParameterManager

vtable indique la fonction membre manquante est virtuelle.

Il vous suffit donc de regarder votre en-tête et de comparer avec le corps les fonctions qui n’ont pas été implémentées.

Dans mon cas il s’agissait du destructeur.

Je vous conseigne le lien suivant pour allé plus loin sur les possibles erreurs liées à ce message d’erreur.
it.swarw-eu.dev

Compiler Code::Blocks sur Mageia7

Compiler Code::Blocks sur Mageia7

Récupérer les sources:

Pour ce petit tutoriel, je propose de créer un dossier Codeblocks et d’ouvrir une console à partir de ce répertoire.

La hiérarchie des dossiers et des fichiers ressemblera à ça.

/Codeblocks*
           |
           *-/bin                         # binaires générés par la  
           |                              # commande «make install»
           |
           *-/codeblocks-code*            # sources
           |                 |
           |                 *-configure  # généré par «bootstrap»
           |
           *-build.sh                     # script qui permet de générer 
                                          # le fichier «configure», de 
                                          # compiler et d'installer les
                                          # binaires dans le dossier
                                          # «bin»
svn checkout https://svn.code.sf.net/p/codeblocks/code/trunk codeblocks-code

Le dossier ressemblera donc à ça :
…\Codeblocks\codeblocks-code

Il est très probable que le transfert échoue et qu’il se fera en plusieurs fois. Pour ce faire il vous faudra faire les commandes suivantes autant de fois qu’il sera nécessaire.

cd codeblocks-code
svn cleanup
cd ..
svn checkout https://svn.code.sf.net/p/codeblocks/code/trunk codeblocks-code

Installer les dépendances:

su
urpmi autoconf libtool automake lib64squirrel-devel hunspell hunspell-fr hunspell-en lib64hunspell-devel lib64wxgtku3.0-devel lib64tinyxml-devel lib64gamin-devel
exit

Lire la suite

Tester si une chaîne de caractère est un réel à l’aide de regex.

Tester si une chaîne de caractère est un réel à l’aide de regex.

L’objectif est de tester si une chaîne de caractère représente un nombre réel (float, double, long double). Pour ce faire j’ai décidé d’utiliser une expression régulière.

Voici l’expression régulière:

(^[\s]*[-+]?[0-9]*?\.?[0-9]+([eE][-+]?[0-9]+)?[\s]*|^[\s]*[-+]?[0-9]+\.?[\s]*)

Le lien de l’expression avec les tests est disponible sur regex101.com
L’expression est divisée en deux groupes (groupe1|groupe2). Le groupe 1 ne peut détecter de réel dans la chaîne de caractère qui suit «1.», c’est au groupe 2 qu’il incombe de le détecter.

Le problème de regex101 c’est qu’il ne génère pas l’implémentation pour c++.

Lire la suite