Marty — 2013-03-20 11:52:49

Bonjour,

J'essaie, pour tester tout d'abord, et éventuellement pour un projet si c'est concluant, d'utiliser la librairie ofxUI pour le designe d'une interface graphique.

lien vers la librairie : https://github.com/rezaali/ofxUI

Je tombe sur un os quand j'essaie de compiler mon projet. Le projet est on ne peu plus simple : je pars du tutoriel présent sur le github.

Jusque la j'arrive à :

- intégrer la librairie ofxUI dans le projet, dans le dossier Addons
- intégrer la librairie ofxXmlSettings dans le projet, dans le dossier Addons
- copié le dossier Data dans mon dossier de projet dans le dossier ./bin
- J'ai ajouté le code comme dans le tuto (jusqu'au paragraphe 13)

A la première compilation il ne me trouvait pas ofxUI.h
Problème réglé en ajoutant un fichier addons.make dans mon dossier projet.

La compilation se lance mais elle finit par m'insulter avec une floppée d'erreurs :

Voila j'en suis la, si quelqu'un à une piste. On dirait que l'erreur est signalée dans les fichiers de la librairie, mais la ca dépasse mes compétences de codeur.

Ma config :

- openFrameworks 0.7.4
- Codeblocks 10.5
- Ubuntu 12.04 à jour

merci à vous

lilive — 2013-03-20 14:54:04

Bonjour Marty,

Utilises-tu le projectGenerator ? (je ne sais pas s'il est dispo sur linux)
Ce serait déjà le moyen de faire un test en partant du principe que le projet est bien configuré.

Arrives-tu à compiler les exemples de ofxUI ? Ce serait un test à faire.

Marty — 2013-03-20 16:57:54

bonjour lilive,

Merci pour ta réponse.

Projectgenerator existe sur linux. Je ne l'ai pas essayé. Je suis passé directement, comme indiqué dans le tuto, par le projet exemple vide.

J'avais aussi essayé de compiler un exemple fourni avec ofxUI mais il me sortait des erreurs. Mais ça c'était avant que j'arrive à inclure les librairies ofxUI dans un projet (avec addons.make). Je n'ai pas réessayé depuis.

Je n'ai pas mon projet sous les yeux mais j'essaie ça ce soir et je reviendrais aux nouvelles.

Marty — 2013-03-20 19:09:46

J'ai un Macbook Pro au boulot. Je viens de faire un essai avec les mêmes versions de ofxUI et openFrameworks mais sur Xcode.

Jusque la tout fonctionne !

Peut être un pb avec gcc sur mon linux ?

Marty — 2013-03-20 22:14:40

Hello,

Je viens donc de retenter l'expérience chez moi sous Linux avec Codeblocks.

J'essaie de compiler un exemple fourni avec ofxUI : example-ofxUISliders

j'obtiens le message suivant :

||=== ofxUISliders, release ===|
../../../libs/openFrameworks/graphics/ofCairoRenderer.h|4|erreur fatale: cairo-features.h : Aucun fichier ou dossier de ce type|
||=== Build finished: 1 errors, 0 warnings ===|

si je commente la ligne de l'include "cairo-features.h" il me met la même erreur sur la ligne d'en dessous pour "cairo-pdf.h"

il en est de même pour tous les exemples.

lilive — 2013-03-20 22:29:42

Je ne suis pas sous linux, mais je tente 2 questions :
Peux-tu compiler un projet vide ?
As-tu bien suivi http://www.openframeworks.cc/setup/linux-codeblocks/ ?

Marty — 2013-03-20 22:37:01

Ca oui, j'ai déja compilé des exemples livrés avec oF et créé des petits bouts de programmes pour me faire la main sans pb.

Les pbs interviennent quand je veux inclure des librairies externes. Dans mon cas ofxUI.

doit y avoir un pb de configuration de codeblocks ou de link ou de dépendances...
J'ai pourtant bien installé codeblocks et les dépendances avec les scripts livrés avec oF

lilive — 2013-03-20 22:46:10

Oui vu l'erreur que tu rapportes on dirait que l'addon utilise ofCairoRenderer, qui fait partie de OF. Quand il tente de compiler cette partie de OF il ne trouve pas les headers de cairo, qui est une bibliothèque utilisée par OF.
Cela te donne peut-être une piste de recherche.

Marty — 2013-03-20 22:57:53

oui j'ai commencé à pister le problème. Je suis tombé sur pas mal de post. Certains disent que le makefile est mal renseigné, d'autres parlent de bugs ou de dépendances à installer...

ça ne résout pas la source du pb mais du coup en suivant les recommandations d'un post j'ai remplacé les includes relatifs à cairo de :

#include "cairo-features.h"
etc...

par

#include "cairo/cairo-features.h"
etc...

et du coup la compile ne bug plus sur ces lignes... évidement il y en a d'autres !

prochain arrêt :

||=== ofxUISliders, release ===|
../../../libs/openFrameworks/sound/ofOpenALSoundPlayer.h|18|erreur fatale: kiss_fft.h : Aucun fichier ou dossier de ce type|
||=== Build finished: 1 errors, 0 warnings ===|

Je me demande si il n'y a pas un chemin relatif à respecter pour les dossiers de projets quand je vois les ../../
Après je ne sais pas comment sont "configurés" les exemple de ofxUI mais dans le doute j'ai essayé de mettre l'exemple que j'essaie de compiler dans le dossier "apps", "exemples" ou encore le laisser dans le dossier "addon" de l'arborescence d'oF mais rien n'y fait !

Marty — 2013-03-20 23:32:47

Bon la encore j'ai réussi à avancer en ajoutant le chemin de kiss dans les chemins de recherche des build options.
je sens qu'il va falloir tout faire à la main !

par contre il me dit qu'il ne trouve pas gst/gst.h et gst/gstpad.h mais je ne les trouve nulle part dans oF. Est-ce une librairie présente dans oF ? ça a visiblement quelque chose à voir avec gstreamer

Marty — 2013-03-21 00:03:27

Bon ! je vais donc poser la question autrement !

Quelqu'un à déjà utilisé une librairie externe dans oF avec CodeBlocks sous linux ? et en particulier ofxUI ?
Comment arriver à compiler un exemple ofxUI ?

Merci à tous ceux qui pourraient m'aider.

Et merci déjà à ceux qui m'ont aidé.

nononononono — 2013-03-21 08:43:24

Salut je suis pas sous linux,
Mais (questions bêtes):
as-tu bien mis ton projet au bon endroit (c.a.d dossierOF/app/myapp/nouveau/leProjet) (of marche de base en chemin relatif)
As tu recopié un projet of vierge pour pouvoir commencer un nouveau? (le projet vierge contiens normalement toutes les info de config pour les chemins d'of)
As tu rajouté à la main les sources des addons? (qui doivent être mis au bon endroit aussi!)
Pour le gst, ce n'est pas dans of de base, je comprends pas pourqu'oi il le cherche avec ofUI....
Bon courage
ArNO

Marty — 2013-03-21 09:26:23

Salut,

oui je pense avoir tout bien fait comme il faut :

- mon projet est bien dans dossierOF/app/myapp/ofxUI_test/fichier_monProjet
- mon dossier de projet est une copie du projet exemple vide de oF
- j'ai téléchargé ofxUI depuis le site puis décompressé l'archive.
- j'ai copié le dossier src de l'archive ofxUI dans mon dossier oF/addon/ofxUI/src
- dans mon projet j'importe les fichiers ofxUI dans le dossier addon, de même que l'addon ofXmlSettings
- je copie (comme recommandé) le dossier DATA d'un exemple ofxUI dans mon dossier projet /bin/data

Par contre la ou je ne suis pas sur de mon coup c'est pour tester un exemple oxfUI, les exemples sont dans l'archive et comme je disais, avec ces chemins relatifs dans les paramètres du projet, je ne sais pas trop ou les mettre. J'ai essayé de les mettre dans les dossiers "apps", "exemples" ou encore le laisser dans le dossier "addon" de l'arborescence d'oF mais rien n'y fait !

pour gst il y a ces lignes :

#define GST_DISABLE_DEPRECATED
#include <gst/gst.h>
#include <gst/gstpad.h>

dans le fichier dossierOF/libs/openFrameworks/video/ofGstUtils.h
ce fichier est bien présent dans la librairie de base de oF

Marty — 2013-03-21 17:24:59

Ok je crois qu'en fait le projet codeblocks est un projet windows...

J'ai donc refait un essai en passant par projectgenerator sous linux et en intégrant les main et testApp, cela semble un peu mieux au niveau includes. Mais il me sort un tas d'erreurs de compilation : voir le tout premier post de ce fil.

en fait je me demande si cette librairie est compatible linux ?
est-il possible qu'un code source soit compilable sur une plateforme et pas sur une autre (genre OSX et pas Linux) ?

nononononono — 2013-03-22 10:39:32

oui si le code utilise des librairies propres à un systèmemais ça m'étonerai pour ofxUI...

Marty — 2013-03-22 11:51:04

Hello,

Oui ça m'étonne aussi pour ofxUI puisque l'idée de l'auteur était de ne dépendre uniquement des libs internes à oF.
Je sais aussi que l'auteur a porté ofxUI pour Cinder, dans ce cas c'est plus compliqué car d'après ce que j'ai compris, Cinder ne peut être utilisé sous Linux.

Pour info je vous fait part de la réponse de l'auteur concernant ce pb :

citation :

I am not sure whats happening here... I haven't tried it on linux...I know people have had trouble getting ofxUI to work on linux before mainly because ofxUI is all .h files... I am reworking the library now to make it work with Cinder as well....so that's where most of my energy will be going..

nardel — 2013-03-22 12:19:46

Hello!
Je debute sur OF.
De mon coté en utilisant ProjetGenerator, je n'ai pas de problème à la compilation et l'utilisation de ofxUi.
Pour tuto, je copie la src d'un exemple fournit avec ofxUi ds la src du projet générer.
Juste codeblock signale bcp de "attention"
Bernard

nardel — 2013-03-22 12:20:49

Je galérais fortement avant l'utilisation de Projetgenerator
Bernard

Marty — 2013-03-22 12:27:37

ok merci pour l'info.

Quelle distibution Linux ?

Je suis en train de faire des essais sur des distris plus récentes pour voir.

Marty — 2013-03-22 12:54:05

Je suis sous une machine de test avec ubuntu 13.04 du jour.
en passant par project generator j'arrive à compiler l'exemple ofxUISliders mais effectivement :

1) il me génère près de 70 warnings de type "comparaison entre expression signée et non signée"
2) j'ai réussi à compiler mais je ne sais pas comment ! à la première cimpilation il me génère des erreurs. A force de compiler, cleaner, re-parse, re-build plusieurs fois... ca a fini pas passer ! incompréhensible.

J'ai essayé, tel un fou de compiler l'exemple ofxUIAllWidgets mais la je ne m'en sors pas, des warnings à la pelle, des erreurs dont un truc du genre :

citation :

src/testApp.cpp.BACKUP.52083.cpp|388|erreur: call of overloaded ‘ofxUILabelToggle(bool, const char [14], ofxWidgetFontType)’ is ambiguous|

Je vais voir sur une autre distrib, genre fedora mais j'y crois plus trop. Je vais finir par faire mes projets sur mac... c'est triste

nardel — 2013-03-22 15:01:56

Là je suis sur Ubuntu 12.04
Je réussis à faire fonctionner tout les exemples de UI....
tu dois aussi ajouter les data de l'exemple visé pour que çà fonctionne mais je ne crois pas que çà pause problème à la compilation. 
J'ai essayé d'autres Gui mais peu de résultat hormis celui-ci et ofxhGui.
ton message parle de FontType ...histoire de typo à corriger ?

Marty — 2013-03-22 15:17:45

hmmmm...
Quelque part ton message me rassures : ca veut dire que ç'est censé fonctioner et si ça ne fonctionne pas c'est qu'il doit y avoir un pb de mon côté.

pour info, ce que je fais :

- je télécharge ofxUI depuis github (branche master)
- je télécharge oF 0.74
- j'installe oF avec script ubuntu (install-codeblocks et install-dependencies)
- je copie le dossier src de l'archive ofxUI dans mon dossier oF/addon/ofxUI/src
- je génère un projet CB avec projectgenerator dans mon dossier oF/app/myapp/ofxUI_test/ en ajoutant les addon ofxUI + ofXmlSettings
- je vide le dossier oF/app/myapp/ofxUI_test/src et y copie les sources d'un exemple ofxUI
- je copie le dossier DATA du même exemple ofxUI dans mon dossier projet /bin/data
- j'ouvre mon projet et je compile...

nardel — 2013-03-22 15:40:23

Je fais ce que tu fais mais par contre j'ai essayé un peu OF 0.74 et j'ai rencontré rapidement des problèmes que je n'avais pas sur 0.73
du coût je continue sur 0.73.. Pas eu le temps de creuser sur les raison de foirage de 0.74.

Marty — 2013-03-22 15:48:44

hmmmm...

pas bête je n'avais pas envisagé cette option, je vais essayer une version antérieure d'oF

Marty — 2013-03-22 17:13:18

rien à faire !

oF 0.73 idem.

erreurs :

citation :

src/testApp.cpp.REMOTE.52083.cpp|60|attention : unused variable ‘kind’ [-Wunused-variable]|
src/testApp.cpp.REMOTE.52083.cpp||In member function ‘void testApp::setGUI2()’:|
src/testApp.cpp.REMOTE.52083.cpp|372|attention : converting ‘false’ to pointer type for argument 1 of ‘std::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>]’ [-Wconversion-null]|
src/testApp.cpp.REMOTE.52083.cpp|373|attention : converting ‘false’ to pointer type for argument 1 of ‘std::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>]’ [-Wconversion-null]|
src/testApp.cpp.REMOTE.52083.cpp|378|erreur: call of overloaded ‘ofxUILabelToggle(bool, const char [16], ofxWidgetFontType)’ is ambiguous|
src/testApp.cpp.REMOTE.52083.cpp|378|note: candidates are:|
../../../addons/ofxUI/src/ofxUILabelToggle.h|111|note: ofxUILabelToggle::ofxUILabelToggle(bool*, std::string, int)|
../../../addons/ofxUI/src/ofxUILabelToggle.h|76|note: ofxUILabelToggle::ofxUILabelToggle(bool, std::string, int)|
../../../addons/ofxUI/src/ofxUILabelToggle.h|33|note: ofxUILabelToggle::ofxUILabelToggle(std::string, bool, float, float, float, float, int, bool)|
src/testApp.cpp.REMOTE.52083.cpp|379|erreur: call of overloaded ‘ofxUILabelToggle(bool, const char [14], ofxWidgetFontType)’ is ambiguous|
src/testApp.cpp.REMOTE.52083.cpp|379|note: candidates are:|
../../../addons/ofxUI/src/ofxUILabelToggle.h|111|note: ofxUILabelToggle::ofxUILabelToggle(bool*, std::string, int)|
../../../addons/ofxUI/src/ofxUILabelToggle.h|76|note: ofxUILabelToggle::ofxUILabelToggle(bool, std::string, int)|
../../../addons/ofxUI/src/ofxUILabelToggle.h|33|note: ofxUILabelToggle::ofxUILabelToggle(std::string, bool, float, float, float, float, int, bool)|
src/testApp.cpp.REMOTE.52083.cpp|333|attention : unused variable ‘dim’ [-Wunused-variable]|
||=== Build finished: 48 errors, 0 warnings ===|

As-tu réussi à compiler l'exemple example-ofxUIAllWidgets ?

Tu as quelle version de ofxUI ? (si tant est qu'il y ait des versions)

Je désespère !

nardel — 2013-03-22 17:48:12

J'utilise la même que toi mais pas de soucis du coté ofxWidgetFontType:
http://codelab.fr/up/Capture-du-2013-03-22-17-24-32.png

Marty — 2013-03-22 18:20:33

raaaah c'est rageant !

tu pourrais m'envoyer ton projet codeblocks pour ofxAllWidgets + tes librairies ofxUI pour tester ?

merci

nardel — 2013-03-23 12:38:34

Alors j'ai un peu de neuf, hier j'ai utiliser un autre pc et j'ai eu un problème avec la référence de typoFont ds  Ui.
Le truc c'est que je n'ai pas noté.
Voir UI et ..../of_v0073_linux_release/libs/openFrameworks/graphics/ofTrueTypeFont.ccp
A creuser...

Voici une copie de mon dossier myApps nommé "example_ofxUIAllWidgets"

Marty — 2013-03-23 13:45:58

Salut,

Merci pour ces infos et les fichiers.
Petit problème cependant, ton archive semble corrompue, je n'arrive pas à décompresser.

Peux tu la reposter ?
et si tu peux y inclure ta version ofxUI. Je ne sais pas quand tu l'a récupéré mais je me dis que peut être elle a évolué entre le moment ou toi tu l'as récup et moi (je tente toutes les explications !)

Marty — 2013-03-25 14:47:54

Salut,

J'ai réussi à récupérer ton projet.
Je te le donne en mille : ça compile sans pb !

il y a vraiment quelque chose que je fais de travers... !