alec078
Messages postés2Date d'inscriptionmercredi 19 décembre 2007StatutMembreDernière intervention30 janvier 2012 30 janv. 2012 à 12:00
Pour la compilation, c'est bien lié au compilateur: par réflexe, ne faisant que rarement du C, j'avais le source mis dans un fichier d'extension cpp. Ce qui donne:
$ gcc -o color color.cpp -lX11
/tmp/ccZ6jt2n.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'
$ gcc -o color color.c -lX11
# OK
valchek
Messages postés1Date d'inscriptionmercredi 1 septembre 2010StatutMembreDernière intervention30 janvier 2012 30 janv. 2012 à 09:40
Bonjour Alec078
Pour ce qui est des problèmes de compilation, je pense que c'est lié au binaire utilisé : g++ au lieu de gcc. Ce code est en C.
Sinon en ce qui concerne la remarque sur la non fonctionnalité du programme, je crois comprendre ce que tu dis; j'ai fais ce bout de code car j'avais besoin d'un programme équivalent à celui existant sur Mac, comme précisé dans la description; je m'en sers en peinture lorsque j'ai un modèle sur écran et que j'ai un doute sur la couleur d'une portion de l'image. Je n'ai donc pas l'utilité de récupérer ces valeurs dans un programme... Mais cela pourrait être une amélioration de ce code, assez simple à mettre en place je pense.
Bonne journée
alec078
Messages postés2Date d'inscriptionmercredi 19 décembre 2007StatutMembreDernière intervention30 janvier 2012 27 janv. 2012 à 13:06
Voici les modifications que j'ai effectuées pour que cela compile:
$ uname -a
Linux lucid 2.6.32-34-generic #77-Ubuntu SMP Tue Sep 13 19:39:17 UTC 2011 x86_64 GNU/Linux
$ lsb_release -a
[...]
Description: Ubuntu 10.04.3 LTS
J'ai du caster ces 2 malloc:
$ g++ -o color color.cpp -lX11
color.cpp: In function ‘void init()’:
color.cpp:111: error: invalid conversion from ‘void*’ to ‘XTextProperty*’
color.cpp:125: error: invalid conversion from ‘void*’ to ‘XColor*’
color.cpp: At global scope:
color.cpp:144: error: ‘::main’ must return ‘int’
puis renvoyer un int plutôt que void dans le main, ce qui est plus dans la norme.
Le programme fonctionne comme prévu pour ce qui est de la colorimétrie.
Par contre changer le curseur en croix ne rend pas le pointage plus précis, c'est le rôle de la loupe.
Et surtout, et c'est ce qui rend le programme non fonctionnel, les événements X sont tous interceptés par l'application, ce qui rend son utilisation compliquée; quand on en arrive au point d'utiliser un colorimètre, c'est qu'on est en train de programmer, et qu'on a besoin de ces valeurs (bien souvent plusieurs en série si on veut les couleurs dans un dégrade). Et obliger l'utilisateur a quitter et relancer l'application, entre chaque valeur, sans compter qu'il doit compter sur sa mémoire entre deux.
Pourquoi ne pas juste dumper les valeurs aux points cliqués ?
g3g3
Messages postés4Date d'inscriptionlundi 14 février 2005StatutMembreDernière intervention 9 janvier 2012 9 janv. 2012 à 14:37
library = bibliothèque en français à moins que tu ne fasse payer tes fonctions ...
30 janv. 2012 à 12:00
$ gcc -o color color.cpp -lX11
/tmp/ccZ6jt2n.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'
$ gcc -o color color.c -lX11
# OK
30 janv. 2012 à 09:40
Pour ce qui est des problèmes de compilation, je pense que c'est lié au binaire utilisé : g++ au lieu de gcc. Ce code est en C.
Sinon en ce qui concerne la remarque sur la non fonctionnalité du programme, je crois comprendre ce que tu dis; j'ai fais ce bout de code car j'avais besoin d'un programme équivalent à celui existant sur Mac, comme précisé dans la description; je m'en sers en peinture lorsque j'ai un modèle sur écran et que j'ai un doute sur la couleur d'une portion de l'image. Je n'ai donc pas l'utilité de récupérer ces valeurs dans un programme... Mais cela pourrait être une amélioration de ce code, assez simple à mettre en place je pense.
Bonne journée
27 janv. 2012 à 13:06
$ uname -a
Linux lucid 2.6.32-34-generic #77-Ubuntu SMP Tue Sep 13 19:39:17 UTC 2011 x86_64 GNU/Linux
$ lsb_release -a
[...]
Description: Ubuntu 10.04.3 LTS
J'ai du caster ces 2 malloc:
$ g++ -o color color.cpp -lX11
color.cpp: In function ‘void init()’:
color.cpp:111: error: invalid conversion from ‘void*’ to ‘XTextProperty*’
color.cpp:125: error: invalid conversion from ‘void*’ to ‘XColor*’
color.cpp: At global scope:
color.cpp:144: error: ‘::main’ must return ‘int’
1/
title=(XTextProperty *) malloc(sizeof(XTextProperty));
2/
c= (XColor *) malloc(sizeof(XColor));
puis renvoyer un int plutôt que void dans le main, ce qui est plus dans la norme.
Le programme fonctionne comme prévu pour ce qui est de la colorimétrie.
Par contre changer le curseur en croix ne rend pas le pointage plus précis, c'est le rôle de la loupe.
Et surtout, et c'est ce qui rend le programme non fonctionnel, les événements X sont tous interceptés par l'application, ce qui rend son utilisation compliquée; quand on en arrive au point d'utiliser un colorimètre, c'est qu'on est en train de programmer, et qu'on a besoin de ces valeurs (bien souvent plusieurs en série si on veut les couleurs dans un dégrade). Et obliger l'utilisateur a quitter et relancer l'application, entre chaque valeur, sans compter qu'il doit compter sur sa mémoire entre deux.
Pourquoi ne pas juste dumper les valeurs aux points cliqués ?
9 janv. 2012 à 14:37