Сложнее ответить, чем необходимо, сообщение об ошибке компоновщика скрыто.Используйте онлайновый деманглер , чтобы увидеть имя символа в виде открытого текста, которое компоновщик не может найти.Обязательно скопируйте / вставьте настоящий искаженный символ.
Допустимое искаженное имя, несколько напоминающее сообщение об ошибке, будет _ZN1a3FooC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
.Который demangles к a::Foo::Foo(const std::string&)
.
Другими словами, вы объявили конструктор для класса Foo, но забыли написать его.Довольно стандартная ошибка.Подробнее об этих ошибках компоновщика в этом Q + A .