Bonjour,
Je ne suis pas sur que ce soit le bon forum mais vu que je cherche a faire du C++ portable, ça doit être le plus appriorié. C'est plus un problème d'OS ou de lib je pense mais bon.
Précision : je suis dev windows, j'ai pas encore fait de dev sur d'autres plateformes (donc je connais mal les autres environnements) mais j'essaie de faire un projet cross platform et une des applications du projet est la suivante.
Je voudrais mettre en place une petite application console c++ qui serait plus ou moins l'équivalent d'un Hello World interactif (qui demande d'appuyé sur 1 ou 2 par exemple).
Il faut que cette application soit portable (windows, linux, mac).
Au début, je me disais que j'avais juste a faire une application console avec la STL et que ça passerai tout seul. Dans la théorie c'est vrai, mais pas dans la pratique : j'ai testé le code d'un hello world sous Ubuntu et le problème c'est que si on utilise autre chose qu'un terminal, on ne voit pas les sorties de la console standard (ce qui est logique mais sous windows une console est ouverte automatiquement au lancement de l'application).
Donc je cherche une solution simple pour avoir une console qui s'affiche avec le même code sur les 3 OS que je vise. Dans l'idéal, il faudrait que les différences entre OS soient dans le code et pas a l'exterieur de celui ci, même si j'envisage toutes les solutions simples.
Quelques pistes que j'envisage :
- garder mon application tel quel (C++ et STL et boost) mais utiliser un .desktop pour les environnements qui le gèrent (note : on me l'a conseillé mais j'ai pas encore regardé en détail - a voir);
- trouver une commande (différente par OS) ou une option de configuration de build qui force la création d'une interface console au lancement de l'application - est-ce possible? si oui, je pense que ce serait la solution la plus simple;
- utiliser un GUI cross-platform - peut être overkill!
- utiliser une api générant une interface console cross-platform (via une lib GUI?) - interessant mais je n'ai pas trouvé de lib de ce genre...
Est-ce que quelqu'un a une idée de comment je pourrais faire ça très simplement? Sachant que je veux un minimum de dépendances (oubliez .NET par exemple).
Partager