前提・実現したいこと
UE4からgrpcを使っての通信を実装しようとしています。
調べてみるとInfraworld(https://github.com/vizor-games/InfraworldRuntime)というプラグインがあり、ライブラリ作成のためにこちらのSetup.batを使ってみたのですが
いくつかの外部シンボル参照エラーが出てしまいました。
エラーの内容的にabslのlibファイルが作成されていないのが原因なのかと思って調べてみていますが
建設的な情報が見つからなかったためこちらに質問を書かせていただきました。
Setup.batのBRANCHはサーバー側のバージョンに合わせて1.29.xに変更しています。
UE_ROOTは私の環境に合わせて設定されています。
発生している問題・エラーメッセージ
1>grpc.lib(client_channel.obj) : error LNK2019: 未解決の外部シンボル "void __cdecl absl::lts_2020_02_25::optional_internal::throw_bad_optional_access(void)" (?throw_bad_optional_access@optional_internal@lts_2020_02_25@absl@@YAXXZ) が関数 "private: void __cdecl grpc_core::`anonymous namespace'::CallData::ApplyServiceConfigToCallLocked(struct grpc_call_element *)" (?ApplyServiceConfigToCallLocked@CallData@?A0xe6a7ad75@grpc_core@@AEAAXPEAUgrpc_call_element@@@Z) で参照されました。 1>grpc.lib(cds.obj) : error LNK2001: 外部シンボル ""void __cdecl absl::lts_2020_02_25::optional_internal::throw_bad_optional_access(void)" (?throw_bad_optional_access@optional_internal@lts_2020_02_25@absl@@YAXXZ)" は未解決です。 1>grpc.lib(xds.obj) : error LNK2001: 外部シンボル ""void __cdecl absl::lts_2020_02_25::optional_internal::throw_bad_optional_access(void)" (?throw_bad_optional_access@optional_internal@lts_2020_02_25@absl@@YAXXZ)" は未解決です。 1>grpc.lib(xds_client.obj) : error LNK2001: 外部シンボル ""void __cdecl absl::lts_2020_02_25::optional_internal::throw_bad_optional_access(void)" (?throw_bad_optional_access@optional_internal@lts_2020_02_25@absl@@YAXXZ)" は未解決です。 1>grpc.lib(chttp2_transport.obj) : error LNK2019: 未解決の外部シンボル "private: static bool __cdecl absl::lts_2020_02_25::str_format_internal::FormatArgImpl::Dispatch<char const *>(union absl::lts_2020_02_25::str_format_internal::FormatArgImpl::Data,class absl::lts_2020_02_25::str_format_internal::FormatConversionSpec,void *)" (??$Dispatch@PEBD@FormatArgImpl@str_format_internal@lts_2020_02_25@absl@@CA_NTData@0123@VFormatConversionSpec@123@PEAX@Z) が関数 "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl absl::lts_2020_02_25::StrFormat<char const *,char *>(class absl::lts_2020_02_25::str_format_internal::FormatSpecTemplate<char const *,char *> const &,char const * const &,char * const &)" (??$StrFormat@PEBDPEAD@lts_2020_02_25@absl@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBV?$FormatSpecTemplate@PEBDPEAD@str_format_internal@01@AEBQEBDAEBQEAD@Z) で参照されました。 1>grpc.lib(chttp2_transport.obj) : error LNK2019: 未解決の外部シンボル "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl absl::lts_2020_02_25::str_format_internal::FormatPack(class absl::lts_2020_02_25::str_format_internal::UntypedFormatSpecImpl,class absl::lts_2020_02_25::Span<class absl::lts_2020_02_25::str_format_internal::FormatArgImpl const >)" (?FormatPack@str_format_internal@lts_2020_02_25@absl@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@VUntypedFormatSpecImpl@123@V?$Span@$$CBVFormatArgImpl@str_format_internal@lts_2020_02_25@absl@@@23@@Z) が関数 "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl absl::lts_2020_02_25::StrFormat<char const *,char *>(class absl::lts_2020_02_25::str_format_internal::FormatSpecTemplate<char const *,char *> const &,char const * const &,char * const &)" (??$StrFormat@PEBDPEAD@lts_2020_02_25@absl@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBV?$FormatSpecTemplate@PEBDPEAD@str_format_internal@01@AEBQEBDAEBQEAD@Z) で参照されました。 1>grpc.lib(xds.obj) : error LNK2019: 未解決の外部シンボル "void __cdecl absl::lts_2020_02_25::base_internal::ThrowStdOutOfRange(char const *)" (?ThrowStdOutOfRange@base_internal@lts_2020_02_25@absl@@YAXPEBD@Z) が関数 "public: void __cdecl grpc_core::`anonymous namespace'::XdsLb::LocalityMap::UpdateXdsPickerLocked(void)" (?UpdateXdsPickerLocked@LocalityMap@XdsLb@?A0x5b6dae6d@grpc_core@@QEAAXXZ) で参照されました。 1>grpc.lib(service_config.obj) : error LNK2001: 外部シンボル ""void __cdecl absl::lts_2020_02_25::base_internal::ThrowStdOutOfRange(char const *)" (?ThrowStdOutOfRange@base_internal@lts_2020_02_25@absl@@YAXPEBD@Z)" は未解決です。 1>grpc.lib(ssl_transport_security.obj) : error LNK2001: 外部シンボル ""void __cdecl absl::lts_2020_02_25::base_internal::ThrowStdOutOfRange(char const *)" (?ThrowStdOutOfRange@base_internal@lts_2020_02_25@absl@@YAXPEBD@Z)" は未解決です。 1>gpr.lib(host_port.obj) : error LNK2001: 外部シンボル ""void __cdecl absl::lts_2020_02_25::base_internal::ThrowStdOutOfRange(char const *)" (?ThrowStdOutOfRange@base_internal@lts_2020_02_25@absl@@YAXPEBD@Z)" は未解決です。 1>grpc.lib(ssl_utils.obj) : error LNK2019: 未解決の外部シンボル "public: unsigned __int64 __cdecl absl::lts_2020_02_25::string_view::find(char,unsigned __int64)const " (?find@string_view@lts_2020_02_25@absl@@QEBA_KD_K@Z) が関数 "bool __cdecl grpc_ssl_check_call_host(class absl::lts_2020_02_25::string_view,class absl::lts_2020_02_25::string_view,class absl::lts_2020_02_25::string_view,struct grpc_auth_context *,struct grpc_error * *)" (?grpc_ssl_check_call_host@@YA_NVstring_view@lts_2020_02_25@absl@@00PEAUgrpc_auth_context@@PEAPEAUgrpc_error@@@Z) で参照されました。
試したこと
https://qiita.com/YujiroTakahashi/items/de5dbd67e2f77ee465c8
こちらを参考にabseil-cppを手動でビルドしてみようとしたところ以下のように失敗しました
S:\PluginTest\Plugins\TestPlugin\grpc\third_party\abseil-cpp>mkdir build S:\PluginTest\Plugins\TestPlugin\grpc\third_party\abseil-cpp>cd build S:\PluginTest\Plugins\TestPlugin\grpc\third_party\abseil-cpp\build>cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE .. -- Building for: Visual Studio 15 2017 -- Selecting Windows SDK version 10.0.17763.0 to target Windows 10.0.18363. -- The CXX compiler identification is MSVC 19.16.27040.0 -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/cl.exe -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/cl.exe -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- No CMAKE_CXX_STANDARD set, assuming 11 -- Looking for C++ include pthread.h -- Looking for C++ include pthread.h - not found -- Found Threads: TRUE -- Configuring done -- Generating done CMake Warning: Manually-specified variables were not used by the project: CMAKE_BUILD_TYPE -- Build files have been written to: S:/PluginTest/Plugins/TestPlugin/grpc/third_party/abseil-cpp/build S:\PluginTest\Plugins\TestPlugin\grpc\third_party\abseil-cpp\build>make -j make: *** ターゲットが指定されておらず, makefile も見つかりません. 中止.
補足情報(FW/ツールのバージョンなど)
Windows10_64bit
UnrealEngine4.24
cmake version 3.16.3
VisualStudio2017_Community
足りない情報などありましたらご指摘いただければ幸いです
回答1件
あなたの回答
tips
プレビュー