Мне нужно связать две библиотеки, скажем, A и B. Некоторые файлы являются общими в обеих библиотеках.
Итак, я объявляю функции в библиотеке A внутри пространства имен, скажем, abc.
Итак, в A и B функция func выглядит следующим образом:
[ in A]
namespace abc {
extern "C" void func();
}
[in B]
extern "C" void func();
При сборке проекта компилятор выдает ошибки связывания, говоря несколько определений функции func. Не является ли функция func в A внутри пространства имен или есть какая-то проблема с внешними функциями "C". Если есть, то как я могу отличить их обоих?