Il y a plusieurs choses que vous pouvez faire.
Vous pouvez le réécrire en C. Sans réellement voir le code, je ne sais pas combien de problèmes ce serait.Beaucoup de code C++ est simplement C avec quelques addons, et certains font un usage intensif des templates et des fonctions surchargées et autres. Si vous ne faites pas cela, vous devez le faire communiquer avec C. Cela signifie fournir une interface pour C, et l'entourer de extern "C"{ ... }
afin que le compilateur C++ sache rendre l'interface compatible C. Encore une fois, sans savoir quelque chose du code C++, je ne peux pas dire combien de travail ce serait. Vous aurez besoin de l'encapsuleur pour l'une des solutions suivantes.
Vous pouvez en faire un projet C++, entourer chaque fichier C avec extern"C" { ... }
, et le lier simplement. Si vous avez des fichiers C++, la compilation entière doit être C++.
Vous pouvez faire une bibliothèque séparée pour être liée à.
Ce que vous ne pouvez pas faire est de compiler C et C++ avec une fonction principale de C(), ou avec un compilateur C. C++ est plus exigeant, et nécessite plus de la fonction main().
Vous pouvez toujours essayer de recompiler les fichiers C que vous utilisez en C++ et d'envelopper les fichiers .h pour les bibliothèques dans extern "C" { ... }
. Le C90 bien écrit n'est pas si loin d'être un C++ légal (bien que le standard C99 s'en soit éloigné), et le compilateur signale tout problème de conversion que vous trouvez.
Laquelle de ces propositions est la meilleure pour vous? Des questions telles que: Quelle est la facilité de conversion du code C++? Est-ce facile d'écrire un wrapper C pour la fonctionnalité C++ que vous voulez? Combien de modifications voulez-vous apporter au code C? À quel point êtes-vous familier avec la création d'une bibliothèque Linux?