Installer la bibliothèque Google Test sur Ubuntu

Hello,

aujourd’hui j’ai voulu essayer d’installer la bibliothèque de tests unitaires produite par Google, googletest.

J’ai donc installé l’archive disponible sur leur page Google Code, et ai tenté de lancer la version Makefile de l’installation (étant sur Ubuntu)…

Et là, quelle ne fut pas ma surprise en voyant une flopée d’erreurs sortir de g++:

/home/baron_a/gtest-1.6.0/make/../include/gtest/internal/gtest-port.h:1379: undefined reference to `pthread_setspecific’
collect2: error: ld returned 1 exit status

Heureusement, cela semble être un problème bien connu et la résolution est simple: dans le Makefile de gtest il faut remplacer dans la (les?) ligne(s):

sample1_unittest : sample1.o sample1_unittest.o gtest_main.a
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -lpthread $^ -o $@

l’option -lpthread par l’option -pthread (retirer le petit L au début, quoi, en gros), et voilà ça fonctionne ! \o/ Je me demande si ils le corrigeront un jour… Notez d’ailleurs qu’il y a d’autres moyens d’installation fournis, comme un CMakeLists.txt pour utiliser CMake.

J’ai également vu qu’il y avait un paquet nommé libgtest-dev dans Aptitude, mais je ne l’ai pas installé pour essayer.

Bon anniversaire le blog ! (Avec un peu de retard)

C’est la fête !

Je n’ai pas eu le loisir d’écrire ces derniers temps, avec mon départ et mon arrivée au Québec qui ont été assez mouvementés, mais comme OVH me l’a fait remarquer quelques jours auparavant, la date anniversaire du blog est passée il y a peu ! En effet, il est entré en service le 23 Août 2012. Il a donc…

UN AN !!

Continuer la lecture de Bon anniversaire le blog ! (Avec un peu de retard)

For the World Is Hollow and I Have Touched the Skype (Ubuntu 13.04)

(Pour le coup, ce n’est pas vraiment la faute d’Ubuntu)

Aujourd’hui, un nouveau billet dans la catégorie « les petits problèmes de la vie de tous les jours sous Ubuntu »…

Cette fois-ci avec Skype, le célèbre logiciel de messagerie instantanée. J’ai d’abord eu des difficultés pour l’installer sur Ubuntu 13.04, pour ensuite me rendre compte que les notifications marchaient pas. Comment résoudre ces problèmes ? La réponse dans la suite !

Continuer la lecture de For the World Is Hollow and I Have Touched the Skype (Ubuntu 13.04)

« E: Encountered a section with no Package: header »

Aujourd’ hui encore, j’ ai eu affaire à une « Ubunturie« , comprendre, un truc qui se casse tout seul et qui du coup se met à afficher des gros messages d’erreur rouges un peu partout sans qu’on puisse faire grand chose à part envoyer un rapport d’erreur (oui, Rhythmbox et son process rhythmbox-metadata qui crash à chaque fois qu’on importe des nouveaux morceaux, c’est aussi de toi que je parle !).

Bon là c’est pas Rhythmbox mais Apt ou aptitude, le gestionnaire de mises à jour d’Ubuntu, historiquement hérité de Debian.

Continuer la lecture de « E: Encountered a section with no Package: header »

Man of Steel

Man of Steel annonçait une révolution dans l’univers de Superman. Enfin, Clark Kent tombe le slip ! Plus de 80 ans après la création de la licence, le sujet des sous-vêtements des super-héros fait toujours débat, mais nous laisserons ce sujet à d’autres sites plus spécialisés.

Je vais juste me contenter de vous dire ce que j’ai pensé du film, en bonne grosse n00b de la licence (à part un ou deux épisodes de Smallville vus à la télé, mais on va faire comme si ça ne comptait pas, ok?)

 

Continuer la lecture de Man of Steel

« Je crois que j’ai perdu le (sans) fil… »

Bon, en ce moment j’utilise Ubuntu. Pourquoi ? Un peu par la force des choses, et parce que je vais bientôt peut-être me lancer dans des activités d’initiation à Linux, et que dans ces cas-là, Ubuntu me semble incontournable (encore que ça se discute de plus en plus), et que depuis la dernière fois que j’y ai touché, ça a sacrément changé.

Bon, bref le problème de ce soir ne se situe pas là. Aujourd’hui encore, Ubuntu semble pâtir de problèmes logiciels, matériels, ou les deux, assez hallucinants pour une distribution qui se veut ouvertement très grand public, je trouve.

Continuer la lecture de « Je crois que j’ai perdu le (sans) fil… »

Star Trek Into Darkness : on l’a vu, on en est revenu

Difficile, en ce moment, de passer à côté du douzième film de la série Star Trek qui est sorti en France ce mercredi : Star Trek Into Darkness.

Ayant quand même grave kiffé le premier de J.J. Abrams en 2009, avec Gaby Loutre nous nous y sommes rués, nous l’avons vu, et nous sommes revenus avec quelques bonnes surprises, quelques déceptions, et (pas forcément) des étoiles plein la tête.

Explications.

Continuer la lecture de Star Trek Into Darkness : on l’a vu, on en est revenu

Vérifier si une commande contient du texte ou pas en LaTeX

En ce moment, pour les besoins de mon projet de fin d’études, nous sommes en train de construire un template LaTeX afin d’avoir un truc modulable et facilement réutilisable pour tous les documents et rendus que nous avons à fournir aux professeurs niveau suivi.

Dans ce template LaTeX, il est pour le moment possible d’inclure dans le header de chaque page (fait avec le paquet fancyhdr au passage, peut-être que je ferai un autre article dessus) le logo du projet, et le logo d’un partenaire (dans notre cas, le LabEIP, instance d’Epitech nous suivant sur notre projet de fin d’études, l’EIP).

Inclure une image en LaTeX est relativement facile :

[cc lang= »latex »]

\newcommand{\PartnerLogo}{logo_eip.png}

\includegraphics[height=35pt]{\PartnerLogo}

[/cc]

Les problèmes arrivent lorsqu’on n’a pas de logo à mettre, ou qu’on n’a pas encore l’image, etc… tout en voulant conserver notre template et le garder le plus réutilisable possible, car la commande \includegraphics râle si on lui passe une chaîne vide.

[cc lang= »latex »]

\newcommand{\PartnerLogo}{}

\includegraphics[height=35pt]{\PartnerLogo} %% ça ne marche pas !

[/cc]

Une solution est d’utiliser le paquet etoolbox: il contient la commande \ifdefempty permettant de savoir si le résultat d’une commande est une chaîne de caractères vide ou pas, et de faire une action appropriée le cas échéant.

En pratique, ça s’utilise comme ça :

[cc lang= »latex »]

\ifdefempty{\PartnerLogo}
{} %% si aucun fichier n’est spécifié, on ne fait rien
{
\includegraphics[height=35pt]{\PartnerLogo} %% sinon, on affiche l’image
}

[/cc]

Et voilà, maintenant je peux aussi facilement utiliser mon template pour un projet où je n’ai pas de logo à mettre 😉

zsh: command not found: virtualenv

Je me refais une petite installation Linux en ce moment.

Au moment d’installer virtualenv, ce paquet très pratique pour Python, je suis resté sur le cul en ne voyant pas la commande « virtualenv » s’auto-compléter dans le terminal, et en voyant ça s’afficher si j’essaye quand même de la taper :

zsh: command not found: virtualenv

Enfer et damnation ! Comment cela se peut-il, je viens de l’installer ?

En fait la raison est plutôt bête, étant donné que je l’ai installé avec l’option –user de pip (non, ceci n’est pas un article sponsorisé par Sam&Max…), il est allé s’installer dans ~/.local/bin, plutôt que dans les dossiers généraux du système (pour qu’il ne soit installé que pour mon utilisateur), et mon PATH ne contenait pas (encore) ce dossier.

À partir de là la solution est triviale : il suffit de rajouter 2 petites lignes dans son .zshrc (ou le fichier de config du shell qu’on utilise, en gros)…

[cc lang= »bash »]

PATH=PATH:~/.local/bin

export PATH # il se peut que la syntaxe soit différente pour les shells utilisant setenv (tcsh, etc.)

[/cc]

puis de relancer la config du shell…

[cc lang= »bash »]

source ~/.zshrc

[/cc]

et pouf youplaboum ça y est ça fonctionne !

Mais c’est con comme problème…

La culture est plurielle