Android projet hybride C/C++/Qt

Salut,
J’ai réussi à “terminer” mon projet C/Gtk+. C’est à dire qu’il rempli toutes les fonctionnalités pour lequel j’en avais besoin. Je continue de travailler dessus au fur et à mesure de mes découvertes en programmation.
J’ai séparé en plusieurs fichiers: le coeur du programme, la partie CLI[1] et la partie GUI[2] Gtk+. Mon makefile me permet de produit un binaire CLI uniquement qui tourne sans soucis sur le terminal de mon smartphone (via la cross-compilation).

J’aimerais porter ce programme sous android gràce à Qt, Android SDK, etc… GTK+ ne fournissant pas grand chose de ce coté là…
Le but est de n’écrire que la partie GUI mais en C++/Qt sans toucher à un cheveux du code C.

-D’abord qu’elle est la meilleure approche pour une cible linux. Est ce que linker coeur.o © à du code C++ est faisable? Créer une librairie coeur.so? Comment avoir 3 binaires utilisant le même coeur mais présentant une interface différente (cli, Gtk et Qt)?
-Ensuite, comment cela se passe t’il lors du portage vers android (version Qt uniquement donc)? N’ayant pas encore commencé à jouer avec qtcreator, android sdk/ndk, je voudrais être sûr de pouvoir compiler le C avec le C++ pour android.

Merci à vous.

Par correction:
[1]: Command Line Interface
[2]: Graphical User Interface

Je réponds à ma première question:
Pour pouvoir accéder à des fonctions de core.o (code C) via du C++, on peut inclure core.h dans des balises: extern "C" {#include "core.h"}. Le linker comprendra qu’il s’agit de fonctions C. Ça marche tant qu’aucun mot-clé C++ n’est utilisé dans le header.
Si, comme moi, vous utilisez des mots clés C++ dans votre code C (dans mon cas, une variable de structure appelée “public”), il faut redéfinir le/les mot-clé problèmatiques juste le temps de l “include” en question:
#define public public_alt extern "C" {core.h}
#undef public
Le #undef est important puisqu’il permet de rétablir ce mot clé pour la suite du programme. J’accède à ma variable via public_alt.
Si votre code C contient beaucoup de noms (variable et/ou fonctions) incompatible avec C++, le mieux est d’écrire une couche intermédiaire qui traduira.

Ces solutions ont l’avantage de ne pas avoir à toucher au code C.

Par rapport à la seconde question, il va falloir que j’attende d’avoir un tél android sous la main. L’émulateur est trop lent sur mon ordi.

Je réponds finalement à ma 2ème question. La compilation/portage du projet pour android se fait sans problème gràce à QtCreator. Il suffit de suivre la doc (installer et relier android sdk/ndk)
En revanche pas de fenetre native pour ouvrir les fichiers.
Il faut passer par Qt Swift si on veut avoir qqchose qui ressemble à du natif, càd se frapper une réécriture.