C++: внешние функции C внутри пространства имен

Мне нужно скомпоновать две библиотеки, скажем, A и B. Некоторые файлы являются общими в обеих библиотеках. Итак, я объявляю функции в библиотеке A внутри пространства имен, скажем, abc. Итак, в A и B функция func выглядит следующим образом:

[ in A]

    namespace abc {
    extern "C" void func();
    }


[in B]

    extern "C" void func();

При сборке проекта компилятор выдает ошибки компоновки, говорящие о нескольких определениях функции func. Разве функция не работает в A внутри пространства имен или есть какая-то проблема с внешними функциями «C». Если есть, то как я могу отличить их обоих?

16
задан sbi 17 November 2016 в 21:15
поделиться