Я получаю следующую ошибку в окнах.Ошибка: LINK2019: неразрешенный внешний символ при использовании оператора << в пространстве имен
У меня есть библиотека L1, которая имеет следующий заголовок файла и его реализация
namespace TC
{
namespace VT
{
enum Value
{
INVALID = 0,
Light = 1
};
std::ostream& operator<<(std::ostream& os, Value value);
}
}
Существует еще одна библиотека L2, который использует оператор < <. Компиляторы кода отлично, но приводит к нерешенной внешней ошибке символа. Это значит, что оператор < < не находится во времени ссылки.
Код в библиотеке L2.
bool Mock::Test(
TC::VT::Value venue)
{
string func(__func__);
cout << func
<< "venue = "
<< venue
<< endl;
return false;
}
cout line является одной из причин проблемы.
MockClient.obj: Ошибка LNK2019: неразрешенный внешний символ «класс станд :: basic_ostream> & __cdecl ТС :: ВТ :: Оператор < < (класс станд :: basic_ostream> &, перечисление ТС :: VT :: Value) "
Ну, где это определение? Какая ошибка? Как выглядит ваш [testcase] (http://sscce.org)? 2 года, 3 месяца, и вы должны знать, как задавать вопросы сейчас! :) –
Это выглядит как простой случай библиотеки L2 не связывается с библиотекой L1 – Petesh
Он связывает его – KodeWarrior