Вопрос Подключение протобафов(Protobuf)

Начинающий
Статус
Оффлайн
Регистрация
4 Апр 2024
Сообщения
28
Реакции[?]
1
Поинты[?]
1K
В общем на входе:

На выходе:
Просто безумное количество синтактических ошибок. При чем там в инструкции сказано удалить кое-какие .proto файлы дотовские, которые требуются т.е. к синтаксическим ошибкам добавляются фэйлы с открытием файлом, когда я например обращаюсь к дотовскому econ_gcmessages.pb.h, чтобы использовать CMsgClientToGCEquipItems т.к. этот хедер тянет за собой все те файлы, которые нужно удалить.

Тут я ничего не удалял, все скомпилированные файлики .proto по доте были заинклюжены:
1717091022142.png
1717091690796.png

Тут я уже удалил(т.е. сделал по инструкции) и добавились фэйлы открытия этих файлов:
1717091088193.png


Настройки(сорян за радикал, я на форум могу грузить только 3 картинки):
Пожалуйста, авторизуйтесь для просмотра ссылки.
Пожалуйста, авторизуйтесь для просмотра ссылки.
Пожалуйста, авторизуйтесь для просмотра ссылки.
Пожалуйста, авторизуйтесь для просмотра ссылки.
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Последнее редактирование:
Участник
Статус
Оффлайн
Регистрация
23 Май 2019
Сообщения
779
Реакции[?]
331
Поинты[?]
63K
ну ваще ты можешь компилить только то что тебе надо.
открываешь .proto файл и смотришь депенды и их депенды
например если мне нужен econ_gcmessages.proto то я открываю его смотрю а там
import "steammessages.proto";
import "econ_shared_enums.proto";
import "gcsdk_gcmessages.proto";
import "base_gcmessages.proto";
открываю каждый из этих файликов и у них тоже депенды смотрю
в итоге все депенды + сам файл:
steammessages
econ_shared_enums
gcsdk_gcmessages
base_gcmessages
steammessages_steamlearn.steamworkssdk
steammessages_unified_base.steamworkssdk
econ_gcmessages
компилишь все эти файлы инклюдишь у себя хедер нужный(econ_gcmessages.pb.h) добавляешь в проект все эти .pb.cc файлы и радуешься.
C++:
#pragma comment(lib, "libprotobuf.lib")
#include <iostream>
#include <econ_gcmessages.pb.h>
#include <google/protobuf/text_format.h>
std::string MessageToString(const google::protobuf::Message& msg)
{
    std::string MessageDump{};
    google::protobuf::TextFormat::PrintToString(msg, &MessageDump);
    return MessageDump;
}

int main()
{
    CMsgClientToGCEquipItems shit{};
    shit.add_equips()->set_item_id(123);
    shit.add_equips()->set_item_id(456);
    std::cout << MessageToString(shit);
}
1717093982942.png
 
Начинающий
Статус
Оффлайн
Регистрация
4 Апр 2024
Сообщения
28
Реакции[?]
1
Поинты[?]
1K
ну ваще ты можешь компилить только то что тебе надо.
открываешь .proto файл и смотришь депенды и их депенды
например если мне нужен econ_gcmessages.proto то я открываю его смотрю а там
import "steammessages.proto";
import "econ_shared_enums.proto";
import "gcsdk_gcmessages.proto";
import "base_gcmessages.proto";
открываю каждый из этих файликов и у них тоже депенды смотрю
в итоге все депенды + сам файл:
steammessages
econ_shared_enums
gcsdk_gcmessages
base_gcmessages
steammessages_steamlearn.steamworkssdk
steammessages_unified_base.steamworkssdk
econ_gcmessages
компилишь все эти файлы инклюдишь у себя хедер нужный(econ_gcmessages.pb.h) добавляешь в проект все эти .pb.cc файлы и радуешься.
C++:
#pragma comment(lib, "libprotobuf.lib")
#include <iostream>
#include <econ_gcmessages.pb.h>
#include <google/protobuf/text_format.h>
std::string MessageToString(const google::protobuf::Message& msg)
{
    std::string MessageDump{};
    google::protobuf::TextFormat::PrintToString(msg, &MessageDump);
    return MessageDump;
}

int main()
{
    CMsgClientToGCEquipItems shit{};
    shit.add_equips()->set_item_id(123);
    shit.add_equips()->set_item_id(456);
    std::cout << MessageToString(shit);
}
Посмотреть вложение 277904
Ну вроде без изменений.
1717097430581.png
1717097457725.png
 
Участник
Статус
Оффлайн
Регистрация
23 Май 2019
Сообщения
779
Реакции[?]
331
Поинты[?]
63K
Начинающий
Статус
Оффлайн
Регистрация
4 Апр 2024
Сообщения
28
Реакции[?]
1
Поинты[?]
1K
мб версия языка у тебя не та или что-то типо того?
и лучше лог билда скидывай а не скрин ошибок этих
ты сурсы протобафа в проект закинул?
Что я только уже куда не закидывал.
Стандарты языка тоже крутил, все так же.
1717101408103.png
 
Участник
Статус
Оффлайн
Регистрация
23 Май 2019
Сообщения
779
Реакции[?]
331
Поинты[?]
63K
Начинающий
Статус
Оффлайн
Регистрация
4 Апр 2024
Сообщения
28
Реакции[?]
1
Поинты[?]
1K
завтра тестовый проект могу попробовать сделать и скинуть если не разберешься
Это было бы прекрасно.
А в чем прикол наличия этой папки google в raw до компиляции? Ее .bat'ник вообще не трогает же
1717103566637.png
 
Начинающий
Статус
Оффлайн
Регистрация
4 Апр 2024
Сообщения
28
Реакции[?]
1
Поинты[?]
1K
Проблема была в том, что я определил алиасы u64,u32 и на них заагрились такие же алиасы из сурсов.
А еще descriptor.pb.h(дотавский протобаф) конфликтует с какой-то фигней из сурсов, я его исключил, пока все работает.
 
Участник
Статус
Оффлайн
Регистрация
23 Май 2019
Сообщения
779
Реакции[?]
331
Поинты[?]
63K
Сверху Снизу