Я получил несколько прототипов файлов с сервера, созданного в одном пакете. Когда я добавляю более одного из этих прототипов в проект, каждый прототип создает свои собственные файлы .pb.cc и .h, и у каждого сгенерированного файла есть два следующих метода. Мне нужно включить некоторые из сгенерированных файлов .cc в один из моих проектов, что приводит к нескольким определениям двух приведенных ниже функций.
автоматически генерируемые функции, вызывающие проблемы «у функции уже есть тело»
1. protobuf_AssignDescriptorsOnce ()
2. protobuf_RegisterTypes (const :: std :: string&)
Внесение изменений в имя пакета, очевидно, решает эту проблему, но файл прототипа был предоставлен сервером, и любое изменение в этом файле может вызвать огромные изменения во всех других зависимых клиентах.
Любая помощь для решения этой проблемы будет принята с благодарностью.
С Уважением,
Abilash.G
Проблема была проста и не связана с protobuf. Я включил все сгенерированные файлы pb.cc непосредственно в мой stdafx.cpp вместо того, чтобы добавлять сгенерированные файлы как часть проектов, что вызывало ошибку «уже имеет тело» для глобальных функций.
Других решений пока нет …