When doing ue4 conan generate && ue4 conan build all, number of default recipes fail:
Notably the grpc-ue4 fails to build 15 targets with unresolved externals like these:
cpp_plugin.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class google::protobuf::Descriptor const * __cdecl google::protobuf::MethodDescriptor::input_type(void)const " (__imp_?input_type@MethodDescriptor@protobuf@google@@QEBAPEBVDescriptor@23@XZ) referenced in function "public: virtual class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl ProtoBufMethod::get_input_type_name(void)const " (?get_input_type_name@ProtoBufMethod@@UEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ) [C:\Users\iliak\.conan\data\grpc-ue4\1.16.0\adamrehn\4.24\build\2bf84d8fd36537e1aae88502d30749a85ac24423\grpc_cpp_plugin.vcxproj]
cpp_plugin.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class google::protobuf::Descriptor const * __cdecl google::protobuf::MethodDescriptor::output_type(void)const " (__imp_?output_type@MethodDescriptor@protobuf@google@@QEBAPEBVDescriptor@23@XZ) referenced in function "public: virtual bool __cdecl ProtoBufMethod::get_module_and_message_path_output(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > *,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,bool,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)const " (?get_module_and_message_path_output@ProtoBufMethod@@UEBA_NPEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V23@_N1@Z) [C:\Users\iliak\.conan\data\grpc-ue4\1.16.0\adamrehn\4.24\build\2bf84d8fd36537e1aae88502d30749a85ac24423\grpc_cpp_plugin.vcxproj]
cpp_plugin.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: bool __cdecl google::protobuf::MethodDescriptor::GetSourceLocation(struct google::protobuf::SourceLocation *)const " (__imp_?GetSourceLocation@MethodDescriptor@protobuf@google@@QEBA_NPEAUSourceLocation@23@@Z) referenced in function "void __cdecl grpc_generator::GetComment<class google::protobuf::MethodDescriptor>(class google::protobuf::MethodDescriptor const *,enum grpc_generator::CommentType,class std::vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > > *)" (??$GetComment@VMethodDescriptor@protobuf@google@@@grpc_generator@@YAXPEBVMethodDescriptor@protobuf@google@@W4CommentType@0@PEAV?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@Z) [C:\Users\iliak\.conan\data\grpc-ue4\1.16.0\adamrehn\4.24\build\2bf84d8fd36537e1aae88502d30749a85ac24423\grpc_cpp_plugin.vcxproj]
cpp_plugin.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const & __cdecl google::protobuf::FileDescriptor::name(void)const " (__imp_?name@FileDescriptor@protobuf@google@@QEBAAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ) referenced in function "public: virtual bool __cdecl CppGrpcGenerator::Generate(class google::protobuf::FileDescriptor const *,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class google::protobuf::compiler::GeneratorContext *,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > *)const " (?Generate@CppGrpcGenerator@@UEBA_NPEBVFileDescriptor@protobuf@google@@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEAVGeneratorContext@compiler@34@PEAV56@@Z) [C:\Users\iliak\.conan\data\grpc-ue4\1.16.0\adamrehn\4.24\build\2bf84d8fd36537e1aae88502d30749a85ac24423\grpc_cpp_plugin.vcxproj]
cpp_plugin.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: bool __cdecl google::protobuf::FileDescriptor::GetSourceLocation(class std::vector<int,class std::allocator<int> > const &,struct google::protobuf::SourceLocation *)const " (__imp_?GetSourceLocation@FileDescriptor@protobuf@google@@QEBA_NAEBV?$vector@HV?$allocator@H@std@@@std@@PEAUSourceLocation@23@@Z) referenced in function "void __cdecl grpc_generator::GetComment<class google::protobuf::FileDescriptor>(class google::protobuf::FileDescriptor const *,enum grpc_generator::CommentType,class std::vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > > *)" (??$GetComment@VFileDescriptor@protobuf@google@@@grpc_generator@@YAXPEBVFileDescriptor@protobuf@google@@W4CommentType@0@PEAV?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@Z) [C:\Users\iliak\.conan\data\grpc-ue4\1.16.0\adamrehn\4.24\build\2bf84d8fd36537e1aae88502d30749a85ac24423\grpc_cpp_plugin.vcxproj]
cpp_plugin.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl google::protobuf::io::Printer::Printer(class google::protobuf::io::ZeroCopyOutputStream *,char)" (__imp_??0Printer@io@protobuf@google@@QEAA@PEAVZeroCopyOutputStream@123@D@Z) referenced in function "public: virtual class std::unique_ptr<struct grpc_generator::Printer,struct std::default_delete<struct grpc_generator::Printer> > __cdecl ProtoBufFile::CreatePrinter(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > *)const " (?CreatePrinter@ProtoBufFile@@UEBA?AV?$unique_ptr@UPrinter@grpc_generator@@U?$default_delete@UPrinter@grpc_generator@@@std@@@std@@PEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@3@@Z) [C:\Users\iliak\.conan\data\grpc-ue4\1.16.0\adamrehn\4.24\build\2bf84d8fd36537e1aae88502d30749a85ac24423\grpc_cpp_plugin.vcxproj]
cpp_plugin.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl google::protobuf::io::Printer::~Printer(void)" (__imp_??1Printer@io@protobuf@google@@QEAA@XZ) referenced in function "public: virtual void * __cdecl ProtoBufPrinter::`scalar deleting destructor'(unsigned int)" (??_GProtoBufPrinter@@UEAAPEAXI@Z) [C:\Users\iliak\.conan\data\grpc-ue4\1.16.0\adamrehn\4.24\build\2bf84d8fd36537e1aae88502d30749a85ac24423\grpc_cpp_plugin.vcxproj]
cpp_plugin.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __cdecl google::protobuf::io::Printer::Print(class std::map<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > > > const &,char const *)" (__imp_?Print@Printer@io@protobuf@google@@QEAAXAEBV?$map@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@@std@@@2@@std@@PEBD@Z) referenced in function "public: virtual void __cdecl ProtoBufPrinter::Print(class std::map<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > > > const &,char const *)" (?Print@ProtoBufPrinter@@UEAAXAEBV?$map@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@@std@@@2@@std@@PEBD@Z) [C:\Users\iliak\.conan\data\grpc-ue4\1.16.0\adamrehn\4.24\build\2bf84d8fd36537e1aae88502d30749a85ac24423\grpc_cpp_plugin.vcxproj]
cpp_plugin.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __cdecl google::protobuf::io::Printer::Print(char const *)" (__imp_?Print@Printer@io@protobuf@google@@QEAAXPEBD@Z) referenced in function "public: virtual void __cdecl ProtoBufPrinter::Print(char const *)" (?Print@ProtoBufPrinter@@UEAAXPEBD@Z) [C:\Users\iliak\.conan\data\grpc-ue4\1.16.0\adamrehn\4.24\build\2bf84d8fd36537e1aae88502d30749a85ac24423\grpc_cpp_plugin.vcxproj]
cpp_plugin.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __cdecl google::protobuf::io::Printer::Indent(void)" (__imp_?Indent@Printer@io@protobuf@google@@QEAAXXZ) referenced in function "public: virtual void __cdecl ProtoBufPrinter::Indent(void)" (?Indent@ProtoBufPrinter@@UEAAXXZ) [C:\Users\iliak\.conan\data\grpc-ue4\1.16.0\adamrehn\4.24\build\2bf84d8fd36537e1aae88502d30749a85ac24423\grpc_cpp_plugin.vcxproj]
cpp_plugin.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __cdecl google::protobuf::io::Printer::Outdent(void)" (__imp_?Outdent@Printer@io@protobuf@google@@QEAAXXZ) referenced in function "public: virtual void __cdecl ProtoBufPrinter::Outdent(void)" (?Outdent@ProtoBufPrinter@@UEAAXXZ) [C:\Users\iliak\.conan\data\grpc-ue4\1.16.0\adamrehn\4.24\build\2bf84d8fd36537e1aae88502d30749a85ac24423\grpc_cpp_plugin.vcxproj]
cpp_plugin.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __cdecl google::protobuf::io::Printer::PrintRaw(char const *)" (__imp_?PrintRaw@Printer@io@protobuf@google@@QEAAXPEBD@Z) referenced in function "public: virtual void __cdecl ProtoBufPrinter::PrintRaw(char const *)" (?PrintRaw@ProtoBufPrinter@@UEAAXPEBD@Z) [C:\Users\iliak\.conan\data\grpc-ue4\1.16.0\adamrehn\4.24\build\2bf84d8fd36537e1aae88502d30749a85ac24423\grpc_cpp_plugin.vcxproj]
cpp_plugin.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) int __cdecl google::protobuf::compiler::PluginMain(int,char * * const,class google::protobuf::compiler::CodeGenerator const *)" (__imp_?PluginMain@compiler@protobuf@google@@YAHHQEAPEADPEBVCodeGenerator@123@@Z) referenced in function main [C:\Users\iliak\.conan\data\grpc-ue4\1.16.0\adamrehn\4.24\build\2bf84d8fd36537e1aae88502d30749a85ac24423\grpc_cpp_plugin.vcxproj]
cpp_plugin.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: static int const google::protobuf::FileDescriptorProto::kSyntaxFieldNumber" (__imp_?kSyntaxFieldNumber@FileDescriptorProto@protobuf@google@@2HB) referenced in function "void __cdecl grpc_generator::GetComment<class google::protobuf::FileDescriptor>(class google::protobuf::FileDescriptor const *,enum grpc_generator::CommentType,class std::vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > > *)" (??$GetComment@VFileDescriptor@protobuf@google@@@grpc_generator@@YAXPEBVFileDescriptor@protobuf@google@@W4CommentType@0@PEAV?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@Z) [C:\Users\iliak\.conan\data\grpc-ue4\1.16.0\adamrehn\4.24\build\2bf84d8fd36537e1aae88502d30749a85ac24423\grpc_cpp_plugin.vcxproj]
C:\Users\iliak\.conan\data\grpc-ue4\1.16.0\adamrehn\4.24\build\2bf84d8fd36537e1aae88502d30749a85ac24423\Release\grpc_cpp_plugin.exe : fatal error LNK1120: 15 unresolved externals [C:\Users\iliak\.conan\data\grpc-ue4\1.16.0\adamrehn\4.24\build\2bf84d8fd36537e1aae88502d30749a85ac24423\grpc_cpp_plugin.vcxproj]
Even though the relevant lib produced by protobuf-ue4 and inluded for linking has those symbols in public section (verified by dumpbin /all)
D:\Tools\conan-ue4cli>ue4 version
Using user-specified engine root: c:\ue4
4.24.3