PDA

Afficher la version complète : [Réglé] Unicode et ncurses



abgech
29/03/2008, 21h16
Bonjour,

Je suis en train de développer un petit projet utilisant ncurses en C.

Dans ce projet, j'utilise unicode (wchar_t) et le codage utf8. Aucun problème avec printf() et dérivés, tout baigne dans l'huile.

Mais impossible de travailler avec ncurses (et c'est pourtant nécessaire dans ce projet).
Par exemple, les fonctions wadd_wchstr() et waddwstr() semblent ne pas être reconnues lors de la compilation (j'obtiens le diagnostique : " implicit declaration of function 'wadd_wchstr' ", alors que, j'ai vérifié, le prototype existe dans ncurses.h. D'autre part, ces même fonctions ne sont pas retrouvées lors de la phase de link-edit, j'obtiens : "undefined reference to `wadd_wchstr'".
J'ai bien essayé d'envoyer une chaîne de type utf-8 comme une simple chaîne, mais cela ne produit pas les résultats escomptés. Dons inutile de biaiser de cette façon.

Mon implémentation de ncurses me semble correcte tant que je n'utilise pas unicode, puisque la totalité de mes logiciels l'utilisant se comporte correctement.

Alors, si quelqu'un a une idée de solution, je suis preneur avec d'immenses remerciements.

abgech
30/03/2008, 16h13
Grâce à un autre forum (http://linuxfr.org), j'ai trouvé la réponse.

Si j'avais lu correctement le fichier ncurses.h, je me serais aperçu qu'il faut définir _XOPEN_SOURCE_EXTENDED (les déclarations concernant les fonctions/macros unicode sont protégées par un #ifdef _XOPEN_SOURCE_EXTENDED).

D'autre part, il faut linker avec la librairie libncursesw.a et non plus avec libncurses.a.

Voilà, c'est tout, je suis en route pour le prochain bug.

Heero_Yuy
31/03/2008, 14h01
Salux,

Tu as trouvé avant que je ne te donne un début de réponse, qui aurait été que l'édition des liens n'était pas faite avec la bonne library ;)