Приветствую.
Вынес кусок кода в отдельный hpp, который использую в разных проектах. Из этого куска передаю указатель на метод в методы разного функционала скомпилированные в разных объектниках как на Сях, так и на С++
Все работает, НО можно ли сделать внешнее связывание одновременно как для Си, так и для С++ в одном проекте???
Например, я объявляю метод в разном функционале
для С++ в hpp просто как
extern void func(void * ptr)
для Си в секции
#ifdef __cplusplus
extern "C" {
#endif
extern void func(void * ptr)
#ifdef __cplusplus
}
#endif
Куски конечно компилируются, но при попытке собрать все это дело
MQTT.h:12:13: error: conflicting declaration of ‘void func(void*)’ with ‘C’ linkage
extern void func(void * ptr);
^~~~~~~~~~~
In file included from IntercomIP.cpp:24:0:
SIP.hpp:36:13: note: previous declaration with ‘C++’ linkage
extern void func(void * ptr);
По всякому уже попробовал ) Собирается только если будет как объектник выделенного кода, так и сам код включен в компиляцию бинарника, выглядит конечно это бредово.