компиляции Из-за некоторые статические данные, у меня есть функцияИспользования ехЬегпа для обозначения функции, определенной в другом блоке
void foo(MyNamespace::bar)
определен в некоторой единице компиляции. Но его точка использования находится в другом блоке компиляции. Поэтому я использую
namespace MyNamespace
{
extern void foo(bar);
}
Но компоновщик не может найти определение функции. Я злоупотребляю extern
?
Определяется ли 'foo' внутри' MyNamespace'? –
Ваше использование extern в порядке. Похоже, что в компоновщике отсутствует единица компиляции, содержащая определение функции, или определение находится в неправильном пространстве имен или аналогично. Какой линкер вы используете? –
Я использую MSVC2012. –