Включение нескольких прототипов в один проект приводит к тому, что protobuf_AssignDescriptorsOnce () уже имеет тело

Я получил несколько прототипов файлов с сервера, созданного в одном пакете. Когда я добавляю более одного из этих прототипов в проект, каждый прототип создает свои собственные файлы .pb.cc и .h, и у каждого сгенерированного файла есть два следующих метода. Мне нужно включить некоторые из сгенерированных файлов .cc в один из моих проектов, что приводит к нескольким определениям двух приведенных ниже функций.

автоматически генерируемые функции, вызывающие проблемы «у функции уже есть тело»
1. protobuf_AssignDescriptorsOnce ()
2. protobuf_RegisterTypes (const :: std :: string&)

Внесение изменений в имя пакета, очевидно, решает эту проблему, но файл прототипа был предоставлен сервером, и любое изменение в этом файле может вызвать огромные изменения во всех других зависимых клиентах.

Любая помощь для решения этой проблемы будет принята с благодарностью.

С Уважением,
Abilash.G

0

Решение

Проблема была проста и не связана с protobuf. Я включил все сгенерированные файлы pb.cc непосредственно в мой stdafx.cpp вместо того, чтобы добавлять сгенерированные файлы как часть проектов, что вызывало ошибку «уже имеет тело» для глобальных функций.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]