portabilité windows/Linux du code

portabilité windows/Linux du code - C - Programmation

Marsh Posté le 12-11-2003 à 21:18:15    

bonjour,
 
Je voudrais faire un programme dont le code source puisse être compilé sous linux comme sous windows..
Seulement voilà : il utilise la bibliothèque conio.h(pour windows) et ncurses.h (pour unix)
comment je peux faire pour ne pas avoir à mettre en commentaire les différentes fonctions qui ne pouront pas être compilé sur l'une ou l'autre plateforme??
 
autre pb.. en compilant avec cc il ne reconait pas la fonction move() (équivalent de gotoxy()).....
 
merci
 
 
 
 
 
 

Reply

Marsh Posté le 12-11-2003 à 21:18:15   

Reply

Marsh Posté le 12-11-2003 à 21:23:04    

move c'est une fonction de "conio".
 
Le plus simple sans doute serait de trouver un port de ncurses pour windows ( pas trop difficile il me semble ), ou de passer par cygwin. Ce dernier permet de compiler une bonne quantité d'applis linux mais directement sous windows et sans changer la moindre ligne de code ( en général ).

Reply

Marsh Posté le 12-11-2003 à 21:26:09    

move c une fonction de conio? oups...desole
l'equivalent de gotoxy sous ncurses c quoi alors?

Reply

Marsh Posté le 12-11-2003 à 21:29:54    

ah non tiens, move c'est bien la fonction de curses :D
 
Mais as tu fais le #include <curses.h> qu'il fallait ? Ou alors le truc plante à l'édition des liens ?

Reply

Marsh Posté le 12-11-2003 à 21:44:14    

voila le message d'erreur mais je n'est pas mis <curses.h>
g mis <ncurses.h>
 

Citation :

/tmp/ccGsBDgh.o(.text+0x18): In function `main':
: référence indéfinie vers « move »
/tmp/ccGsBDgh.o(.eh_frame+0x11): référence indéfinie vers « __gxx_personality_v0 »
collect2: ld a retourné 1 code d'état d'exécution


 

Reply

Marsh Posté le 12-11-2003 à 21:48:28    

- Il est preferable de mettre <curses.h> mais c'est pas trop important.
- Tu as oublié de te lier avec la lib curses. Problème classique car il ne suffit pas d'include les fichiers .h qui vont bien pour produire l'executable final. Ajoute "-lcurses" sur la ligne de commande de gcc. Et au passage, utilise "g++" au lieu de "cc" pour compiler car il semblerait bien que tu compiles du code c++.

Reply

Marsh Posté le 12-11-2003 à 21:58:28    

Merci
avec g++ et "-lcurses" il n'y a plus d'erreur par contre la fonction move() ne fonctionne pas.... :(

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed