У меня есть общая библиотека A.dylib, которая содержит все прототипы, которые я использую. Чтобы собрать эту библиотеку, protoc запускается для каждого файла прототипа, а затем я компилирую все файлы pb.cc и создаю A. У меня есть вторая библиотека, «B.dylib», которая ссылается на библиотеку A, но не перекомпилирует файлы .pb. файлы cc. Затем у меня есть статическая библиотека C, которая связана как с A, так и с B, и ей это необходимо, поскольку ей нужны символы из A, которых нет в B. Как бы то ни было, она прекрасно компилируется и работает в Linux. На Mac он компилируется, но затем приводит к ошибке выполнения, указанной ниже. Я думал, что прототипы должны быть собраны и скомпилированы ровно в одну библиотеку (в данном случае A), и можно связать B с A и C с {A,B}. Весь сгенерированный код protobuf находится только в A и не находится отдельно в B, скорее B ссылается на A, а B не имеет собственных скомпилированных версий файлов pb.cc. Я не уверен, что попробовать на этом этапе. Я использую одну версию libprotobuf в {A,B,C}.
E0000 00:00:1731530599.590256 26179788 descriptor_database.cc:656] File already exists in database: test.proto
F0000 00:00:1731530599.594211 26179788 message.cc:311] File is already registered: test.proto
*** Check failure stack trace: ***
@ 0x1053ee7b8 absl::lts_20240116::log_internal::LogMessage::SendToLog()
@ 0x1053ee088 absl::lts_20240116::log_internal::LogMessage::Flush()
@ 0x1053eeae4 absl::lts_20240116::log_internal::LogMessageFatal::~LogMessageFatal()
@ 0x1053eeafc absl::lts_20240116::log_internal::LogMessageFatal::~LogMessageFatal()
@ 0x105a33674 google::protobuf::MessageFactory::InternalRegisterGeneratedFile()
@ 0x1059c0934 google::protobuf::internal::AddDescriptorsRunner::AddDescriptorsRunner()
@ 0x196d16608 ___ZZNK5dyld46Loader25findAndRunAllInitializersERNS_12RuntimeStateEENK3$_0clEv_block_invoke
@ 0x196d54b38 ___ZNK5dyld313MachOAnalyzer18forEachInitializerER11DiagnosticsRKNS0_15VMAddrConverterEU13block_pointerFvjEPKv_block_invoke.202
@ 0x196d48400 ___ZNK5dyld39MachOFile14forEachSectionEU13block_pointerFvRKNS0_11SectionInfoEbRbE_block_invoke
@ 0x196cf72fc dyld3::MachOFile::forEachLoadCommand()
@ 0x196d47394 dyld3::MachOFile::forEachSection()
@ 0x196d49c6c dyld3::MachOFile::forEachInitializerPointerSection()
@ 0x196d5482c dyld3::MachOAnalyzer::forEachInitializer()
@ 0x196d1253c dyld4::Loader::findAndRunAllInitializers()
@ 0x196d18bc0 dyld4::JustInTimeLoader::runInitializers()
@ 0x196d12984 dyld4::Loader::runInitializersBottomUp()
@ 0x196d12928 dyld4::Loader::runInitializersBottomUp()
@ 0x196d16698 dyld4::Loader::runInitializersBottomUpPlusUpwardLinks()::$_1::operator()()
@ 0x196d12b78 dyld4::Loader::runInitializersBottomUpPlusUpwardLinks()
@ 0x196d35e3c dyld4::APIs::runAllInitializersForMain()
@ 0x196cfc010 dyld4::prepare()
@ 0x196cfaef4 start
Подробнее здесь: https://stackoverflow.com/questions/791 ... n-database
Прототип уже зарегистрирован, уже существует в базе данных ⇐ C++
Программы на C++. Форум разработчиков
-
Anonymous
1731532284
Anonymous
У меня есть общая библиотека A.dylib, которая содержит все прототипы, которые я использую. Чтобы собрать эту библиотеку, protoc запускается для каждого файла прототипа, а затем я компилирую все файлы pb.cc и создаю A. У меня есть вторая библиотека, «B.dylib», которая ссылается на библиотеку A, но не перекомпилирует файлы .pb. файлы cc. Затем у меня есть статическая библиотека C, которая связана как с A, так и с B, и ей это необходимо, поскольку ей нужны символы из A, которых нет в B. Как бы то ни было, она прекрасно компилируется и работает в Linux. На Mac он компилируется, но затем приводит к ошибке выполнения, указанной ниже. Я думал, что прототипы должны быть собраны и скомпилированы ровно в одну библиотеку (в данном случае A), и можно связать B с A и C с {A,B}. Весь сгенерированный код protobuf находится только в A и не находится отдельно в B, скорее B ссылается на A, а B не имеет собственных скомпилированных версий файлов pb.cc. Я не уверен, что попробовать на этом этапе. Я использую одну версию libprotobuf в {A,B,C}.
E0000 00:00:1731530599.590256 26179788 descriptor_database.cc:656] File already exists in database: test.proto
F0000 00:00:1731530599.594211 26179788 message.cc:311] File is already registered: test.proto
*** Check failure stack trace: ***
@ 0x1053ee7b8 absl::lts_20240116::log_internal::LogMessage::SendToLog()
@ 0x1053ee088 absl::lts_20240116::log_internal::LogMessage::Flush()
@ 0x1053eeae4 absl::lts_20240116::log_internal::LogMessageFatal::~LogMessageFatal()
@ 0x1053eeafc absl::lts_20240116::log_internal::LogMessageFatal::~LogMessageFatal()
@ 0x105a33674 google::protobuf::MessageFactory::InternalRegisterGeneratedFile()
@ 0x1059c0934 google::protobuf::internal::AddDescriptorsRunner::AddDescriptorsRunner()
@ 0x196d16608 ___ZZNK5dyld46Loader25findAndRunAllInitializersERNS_12RuntimeStateEENK3$_0clEv_block_invoke
@ 0x196d54b38 ___ZNK5dyld313MachOAnalyzer18forEachInitializerER11DiagnosticsRKNS0_15VMAddrConverterEU13block_pointerFvjEPKv_block_invoke.202
@ 0x196d48400 ___ZNK5dyld39MachOFile14forEachSectionEU13block_pointerFvRKNS0_11SectionInfoEbRbE_block_invoke
@ 0x196cf72fc dyld3::MachOFile::forEachLoadCommand()
@ 0x196d47394 dyld3::MachOFile::forEachSection()
@ 0x196d49c6c dyld3::MachOFile::forEachInitializerPointerSection()
@ 0x196d5482c dyld3::MachOAnalyzer::forEachInitializer()
@ 0x196d1253c dyld4::Loader::findAndRunAllInitializers()
@ 0x196d18bc0 dyld4::JustInTimeLoader::runInitializers()
@ 0x196d12984 dyld4::Loader::runInitializersBottomUp()
@ 0x196d12928 dyld4::Loader::runInitializersBottomUp()
@ 0x196d16698 dyld4::Loader::runInitializersBottomUpPlusUpwardLinks()::$_1::operator()()
@ 0x196d12b78 dyld4::Loader::runInitializersBottomUpPlusUpwardLinks()
@ 0x196d35e3c dyld4::APIs::runAllInitializersForMain()
@ 0x196cfc010 dyld4::prepare()
@ 0x196cfaef4 start
Подробнее здесь: [url]https://stackoverflow.com/questions/79186692/proto-already-registered-already-exists-in-database[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия