После нескольких дней поиска параллельно с моей работой.Я могу это сделать.Как я сказал в своем требовании, мне нужен файл Callback C, который содержит некоторые функции, и нам нужно его использовать, потому что нам не нужен файл cpp.(Потому что в нашем приложении cpp-файл будет содержать Class и нам не нужен класс для обратных вызовов).
Теперь что я сделал:
Приложение использует cmake для сборки.Поэтому я добавил
set_source_files_properties(${BASE_DIR}/path/to/XYZ.c PROPERTIES LANGUAGE CXX)
в CMakeLists.txt
Это дает компилятору понять, что он должен скомпилировать файл XYZ.c как файл cpp.
В основном, если вы "man g ++", тогда написано, что исходные файлы
C ++ обычно используют один из суффиксов .C, .cc, .cpp, .CPP, .c ++, .cp или.CXX;Заголовочные файлы C ++ часто используют .hh, .hpp, .H или (для общего кода шаблона) .tcc;и предварительно обработанные файлы C ++ используют суффикс .ii.GCC распознает файлы с этими именами и компилирует их как программы на C ++, даже если вы вызываете компилятор так же, как и для компиляции программ на C (обычно с именем gcc).
И это то, что мне нужно.Просто сказать компилятору, что Compile похож на cpp.
Заключение:
Это работает, и да, это не способ вызова класса C ++ из C. Как @Andrew сказал C иC ++ - это разные языки.Это своего рода требование, которому я должен следовать, и я новичок в этом, поэтому я потратил некоторое время на поиск всего этого.
Спасибо @Andrew & @Galik за ваше время.