UE5 protobuf

发布时间:2026/6/9 23:18:11
UE5 protobuf
protobuf:Releases · protocolbuffers/protobufhttps://github.com/protocolbuffers/protobuf/releases解压后默认third_party\abseil-cpp默认为空需要下载第三方模块Releases · abseil/abseil-cpphttps://github.com/abseil/abseil-cpp/releases错误解决方法取消勾选错误解决方法勾选cmake版本错误修改third_party\utf8_range\CMakeLists.txt第一行cmake_minimum_required (VERSION 3.5)改为3.26为cmake的版本cmake_minimum_required (VERSION 3.5...3.26)protobuf CMakeLists.txtset (CMAKE_CXX_STANDARD 17) set (CMAKE_CXX_STANDARD_REQUIRED ON) cmake_minimum_required(VERSION 3.10...3.26)vs里编译代码成功后在build目录下执行cmake --install .在 C:\Program Files (x86)\protobuf下UE端新建第三方库插件将include和lib拷贝到模块下build.cs// Fill out your copyright notice in the Description page of Project Settings. using System.IO; using UnrealBuildTool; public class SimProtobufLibrary : ModuleRules { public SimProtobufLibrary(ReadOnlyTargetRules Target) : base(Target) { Type ModuleType.External; PublicSystemIncludePaths.Add(Path.Combine(ModuleDirectory, include)); if (Target.Platform UnrealTargetPlatform.Win64) { PublicSystemLibraryPaths.Add(Path.Combine(ModuleDirectory, lib, Windows)); PublicIncludePaths.Add(Path.Combine(ModuleDirectory, include)); PublicSystemLibraries.Add(absl_bad_any_cast_impl.lib); PublicSystemLibraries.Add(absl_bad_optional_access.lib); PublicSystemLibraries.Add(absl_bad_variant_access.lib); PublicSystemLibraries.Add(absl_base.lib); PublicSystemLibraries.Add(absl_city.lib); PublicSystemLibraries.Add(absl_civil_time.lib); PublicSystemLibraries.Add(absl_cord.lib); PublicSystemLibraries.Add(absl_cordz_functions.lib); PublicSystemLibraries.Add(absl_cordz_handle.lib); PublicSystemLibraries.Add(absl_cordz_info.lib); PublicSystemLibraries.Add(absl_cordz_sample_token.lib); PublicSystemLibraries.Add(absl_cord_internal.lib); PublicSystemLibraries.Add(absl_crc32c.lib); PublicSystemLibraries.Add(absl_crc_cord_state.lib); PublicSystemLibraries.Add(absl_crc_cpu_detect.lib); PublicSystemLibraries.Add(absl_crc_internal.lib); PublicSystemLibraries.Add(absl_debugging_internal.lib); PublicSystemLibraries.Add(absl_decode_rust_punycode.lib); PublicSystemLibraries.Add(absl_demangle_internal.lib); PublicSystemLibraries.Add(absl_demangle_rust.lib); PublicSystemLibraries.Add(absl_die_if_null.lib); PublicSystemLibraries.Add(absl_examine_stack.lib); PublicSystemLibraries.Add(absl_exponential_biased.lib); PublicSystemLibraries.Add(absl_failure_signal_handler.lib); PublicSystemLibraries.Add(absl_flags_commandlineflag.lib); PublicSystemLibraries.Add(absl_flags_commandlineflag_internal.lib); PublicSystemLibraries.Add(absl_flags_config.lib); PublicSystemLibraries.Add(absl_flags_internal.lib); PublicSystemLibraries.Add(absl_flags_marshalling.lib); PublicSystemLibraries.Add(absl_flags_parse.lib); PublicSystemLibraries.Add(absl_flags_private_handle_accessor.lib); PublicSystemLibraries.Add(absl_flags_program_name.lib); PublicSystemLibraries.Add(absl_flags_reflection.lib); PublicSystemLibraries.Add(absl_flags_usage.lib); PublicSystemLibraries.Add(absl_flags_usage_internal.lib); PublicSystemLibraries.Add(absl_graphcycles_internal.lib); PublicSystemLibraries.Add(absl_hash.lib); PublicSystemLibraries.Add(absl_hashtablez_sampler.lib); PublicSystemLibraries.Add(absl_int128.lib); PublicSystemLibraries.Add(absl_kernel_timeout_internal.lib); PublicSystemLibraries.Add(absl_leak_check.lib); PublicSystemLibraries.Add(absl_log_entry.lib); PublicSystemLibraries.Add(absl_log_flags.lib); PublicSystemLibraries.Add(absl_log_globals.lib); PublicSystemLibraries.Add(absl_log_initialize.lib); PublicSystemLibraries.Add(absl_log_internal_check_op.lib); PublicSystemLibraries.Add(absl_log_internal_conditions.lib); PublicSystemLibraries.Add(absl_log_internal_fnmatch.lib); PublicSystemLibraries.Add(absl_log_internal_format.lib); PublicSystemLibraries.Add(absl_log_internal_globals.lib); PublicSystemLibraries.Add(absl_log_internal_log_sink_set.lib); PublicSystemLibraries.Add(absl_log_internal_message.lib); PublicSystemLibraries.Add(absl_log_internal_nullguard.lib); PublicSystemLibraries.Add(absl_log_internal_proto.lib); PublicSystemLibraries.Add(absl_log_severity.lib); PublicSystemLibraries.Add(absl_log_sink.lib); PublicSystemLibraries.Add(absl_low_level_hash.lib); PublicSystemLibraries.Add(absl_malloc_internal.lib); PublicSystemLibraries.Add(absl_periodic_sampler.lib); PublicSystemLibraries.Add(absl_poison.lib); PublicSystemLibraries.Add(absl_random_distributions.lib); PublicSystemLibraries.Add(absl_random_internal_distribution_test_util.lib); PublicSystemLibraries.Add(absl_random_internal_platform.lib); PublicSystemLibraries.Add(absl_random_internal_pool_urbg.lib); PublicSystemLibraries.Add(absl_random_internal_randen.lib); PublicSystemLibraries.Add(absl_random_internal_randen_hwaes.lib); PublicSystemLibraries.Add(absl_random_internal_randen_hwaes_impl.lib); PublicSystemLibraries.Add(absl_random_internal_randen_slow.lib); PublicSystemLibraries.Add(absl_random_internal_seed_material.lib); PublicSystemLibraries.Add(absl_random_seed_gen_exception.lib); PublicSystemLibraries.Add(absl_random_seed_sequences.lib); PublicSystemLibraries.Add(absl_raw_hash_set.lib); PublicSystemLibraries.Add(absl_raw_logging_internal.lib); PublicSystemLibraries.Add(absl_scoped_set_env.lib); PublicSystemLibraries.Add(absl_spinlock_wait.lib); PublicSystemLibraries.Add(absl_stacktrace.lib); PublicSystemLibraries.Add(absl_status.lib); PublicSystemLibraries.Add(absl_statusor.lib); PublicSystemLibraries.Add(absl_strerror.lib); PublicSystemLibraries.Add(absl_strings.lib); PublicSystemLibraries.Add(absl_strings_internal.lib); PublicSystemLibraries.Add(absl_string_view.lib); PublicSystemLibraries.Add(absl_str_format_internal.lib); PublicSystemLibraries.Add(absl_symbolize.lib); PublicSystemLibraries.Add(absl_synchronization.lib); PublicSystemLibraries.Add(absl_throw_delegate.lib); PublicSystemLibraries.Add(absl_time.lib); PublicSystemLibraries.Add(absl_time_zone.lib); PublicSystemLibraries.Add(absl_utf8_for_code_point.lib); PublicSystemLibraries.Add(absl_vlog_config_internal.lib); PublicSystemLibraries.Add(libprotobuf-lite.lib); PublicSystemLibraries.Add(libprotobuf.lib); PublicSystemLibraries.Add(libprotoc.lib); PublicSystemLibraries.Add(libupb.lib); PublicSystemLibraries.Add(utf8_range.lib); PublicSystemLibraries.Add(utf8_validity.lib); } } }关于verify重名问题https://forums.unrealengine.com/t/abseil-cpp-absl-in-thirdparty-redefinition-error/1794996/2