Есть различные вещи, которые вы можете сделать.
Вы можете переписать его в C. Без фактического просмотра кода я не знаю, сколько проблем было бы.Много кода C++ - это просто C с несколькими аддонами, а некоторые сильно используют шаблоны и перегруженные функции и т. Д.
Если вы этого не сделаете, вам нужно сделать так, чтобы он хорошо взаимодействовал с C. Это означает предоставление интерфейса для C и его окружение extern "C"{ ... }
, поэтому компилятор C++ будет знать, чтобы сделать интерфейс C-совместимым. Опять же, не зная что-то из кода на C++, я не могу сказать, насколько это будет работать. Вам понадобится оболочка для любого из следующих решений.
Вы можете сделать это проектом на C++, объединить каждый файл C с помощью extern"C" { ... }
и просто связать его. Если у вас есть файлы C++, вся компиляция должна быть C++.
Вы можете сделать отдельную библиотеку быть связаны.
То, что вы не можете сделать, это скомпилировать C и C++ вместе с функцией C основной(), или с компилятором. C++ более требователен и требует больше от функции main().
Вы всегда можете попробовать перекомпилировать файлы C, которые вы используете в качестве C++, и обернуть файлы .h для библиотек в extern "C" { ... }
. Хорошо написанный C90 не так уж далек от юридического C++ (хотя стандарт C99 отошел от него), и компилятор отметит любые проблемы с конверсией, которые вы найдете.
Какая из них - лучшая идея для вас, зависит от таких вопросов, как: Насколько легко конвертировать код на C++? Насколько легко написать C-оболочку для функциональности C++, которую вы хотите? Сколько изменений вы хотите внести в код C? Насколько вы знакомы с созданием Linux-библиотеки?