Как установить protobuf на windows

Обновлено: 30.06.2024

C ++ - Protobuf не компилируется в VS2012. Теперь я хочу использовать MinGW для его компиляции в Windows. Кто-нибудь может дать мне несколько кратких заголовков о том, как скомпилировать protobuf на Win7 x64. Я уже установил MinGW с помощью установщика с графическим интерфейсом. Google пишет как уведомление об установке MinGW, что я должен обратиться к примечаниям по установке Unix. Но я не могу понять, как использовать автоматические инструменты в Windows.

Изменить

Хорошо, вот что я делал до сих пор:

MinGW32-make.exe работает без ошибок, но тесты не выполняются, и я не могу найти libprotobuf.lib. Есть несколько libprotobuf.dll, но мне нужна библиотека, не так ли?

3 ответа

У вас должна быть консоль MSys вместе с установкой MinGW. Эта консоль предоставляет Linux-подобную среду, в которой вы сможете нормально использовать автоинструменты.

Если MSys не установлен, вы также можете скачать его с сайта MinGW.

cd в свой каталог с источниками и попробуйте как обычно:

Некоторые библиотеки вызывают проблемы в Windows, но большинство хорошо компилируются с MinGW и MSys. Вернитесь и добавьте дополнительную информацию к своему вопросу, если у вас возникнут определенные проблемы.

minGW32-make.exe работает без ошибок, но тесты не выполняются, и я не могу найти libprotobuf.lib. Есть несколько libprotobuf.dll, но мне нужна библиотека, не так ли?

Обычно для динамической библиотеки вы получаете protobuf.dll (динамическую библиотеку) и libprotobuf.a (статическую библиотеку-оболочку).

При связывании просто передайте -lprotobuf компоновщику - он будет искать как libprotobuf.a , так и protobuf.lib .

( .lib - еще один формат статической библиотеки, который частично обрабатывается MinGW, но здесь не является родным.)

Вы не будете работать с файлом .lib при использовании инструментальной цепочки MinGW. Вместо этого вы можете напрямую ссылаться на DLL. Это объясняет вики MinGW.

Я мог бы получить как dll, так и lib. Это когда вам не нужен статический файл lib и вы хотите использовать файлы dll и lib. Вам необходимо внести следующие изменения в код Protobuf:

    Откройте проект в VS. Или любой другой редактор. Пользуюсь VS2015.

В настройках проекта libProtoBuf в препроцессоре C / C ++ добавьте следующие флаги. PROTOBUF_USE_DLLS; LIBPROTOBUF_EXPORTS; Эти флаги будут экспортировать информацию из profobuf с помощью dllexport.

в коде вашего клиента, где вы используете Protobuf, определите: PROTOBUF_USE_DLLS. Это заставит protobuf включить использование dllimport.

Как только вы выполните шаг 2, вы увидите как dll, так и lib в своей выходной папке. В противном случае вы всегда будете видеть только dll, а не файл lib.

C++ - Protobuf не компилируется в VS2012. Теперь я хочу использовать MinGW, чтобы скомпилировать его на windows. Может кто-нибудь, пожалуйста, дать мне несколько кратких заголовков о том, как скомпилировать protobuf на Win7 x64. Я уже установил MinGW с помощью установщика GUI. Google пишет как MinGW setup notice, что я должен обратиться к Примечаниям по установке Unix. Но я не могу понять, как использовать автоматические инструменты на windows.

Редактировать

Ладно это то что я делал до сих пор:

minGW32-make.exe работает без ошибок, но никаких тестов не выполняется, и я не могу найти libprotobuf.lib. Есть некоторые libprotobuf.dll, но мне нужна lib, не так ли?.

3 ответа

Я настраиваю protubuf с windows и mingw, и он отлично работает в msys, пока мне не придется это сделать: И в ответ он выдает этот журнал: This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by Protocol Buffers.

У вас должна быть консоль MSys вместе с вашей установкой MinGW. Эта консоль предоставляет среду, подобную linux, в которой вы должны иметь возможность нормально использовать autotools.

Если MSys не установлен, вы также можете захватить его с сайта MinGW.

cd в свой каталог с исходниками и попробуйте обычный:

Некоторые библиотеки вызывают проблемы с Windows, но большинство хорошо компилируются с MinGW и MSys. Вернитесь и добавьте больше информации к вашему вопросу, если вы столкнетесь с конкретными проблемами.

minGW32-make.exe работает без ошибок, но никаких тестов не выполняется, и я не могу найти libprotobuf.lib. Есть некоторые libprotobuf.dll, но мне нужна lib, не так ли?.

Обычно для динамической библиотеки вы получаете protobuf.dll (динамическая библиотека) и libprotobuf.a (статическая библиотека-оболочка).

При связывании просто передайте -lprotobuf компоновщику - он будет искать как libprotobuf.a , так и protobuf.lib . ( .lib

-это еще один статический формат библиотеки, который частично обрабатывается MinGW, но не является родным здесь.)

Вы не будете работать с файлом .lib при использовании набора инструментов MinGW. Вместо этого вы можете напрямую связать его с dll. MinGW Wiki объясняет это .

Я могу вам dll и либерал одновременно. Это когда вам не нужен статический lib-файл и вы хотите использовать dll и lib-файл. Вам необходимо внести следующие изменения в код Protobuf:

    Откройте проект в VS. Или любой другой редактор. Я использую VS2015.

В настройках проекта libProtoBuf в препроцессоре C/C++ добавьте следующие флаги. PROTOBUF_USE_DLLS; LIBPROTOBUF_EXPORTS; Эти флаги будут экспортировать информацию из profobuf с помощью dllexport

в клиентском коде ur, где вы используете Protobuf, определите: PROTOBUF_USE_DLLS. Что сделает protobuf включает в себя использование dllimport.

Как только вы сделаете шаг 2, вы увидите как dll, так и lib в вашей выходной папке. В противном случае вы всегда будете видеть только dll, а не lib-файл.

Я установил Protobuf в MinGW из источников на github. Когда я пытаюсь скомпилировать свою программу C++, я получаю ошибки: CMakeFiles/nxcore_interface.dir/main.cpp.o:main.cpp:(.rdata$.refptr._ZN6google8protobuf8internal13empty_string_E[.refptr._ZN6google8protobuf8internal13empty_string_E]+0x0).

Я попытался mvn установить предварительно построенные двоичные файлы protobuf-v3.0.0 на windows, но он выдает ошибку, как показано ниже. D:/Tools/protobuf-java-3.0.0/protobuf-3.0.0/java/core/src/main/java/com/google/protobuf/AbstractMessage.java:[327,26] и com.google.protobuf.Message.Builder, и.

Похожие вопросы:

Мне нужно установить protobuf 2.6.1 brew install protobuf дает мне 3.1.0, текущую версию Как установить protobuf 2.6.1 на Mac? Спасибо.

Я пытаюсь установить MinGW на Windows 7 в системе 64 bit, но после завершения установки некоторые основные файлы, такие как stdio.h , отсутствуют. Я устанавливаю тот же пакет MinGW на Windows XP.

Я использую кодовые блоки как мой IDE с MingGW. Я пытаюсь использовать буферы протокола google, но у меня возникли проблемы с построением протобуфа. В файле readme для protobuf говорится: Если вы.

Я пытаюсь скомпилировать protobuf 3.0.0 alpha 1 на Windows, используя MinGW 4.9.2 & MSYS. Согласно инструкции я должен: ./configure make make check make install Я добавил.

Я настраиваю protubuf с windows и mingw, и он отлично работает в msys, пока мне не придется это сделать: И в ответ он выдает этот журнал: This file contains any messages produced by compilers while.

Я установил Protobuf в MinGW из источников на github. Когда я пытаюсь скомпилировать свою программу C++, я получаю ошибки.

Я попытался mvn установить предварительно построенные двоичные файлы protobuf-v3.0.0 на windows, но он выдает ошибку, как показано ниже.

Я попытался установить Protobuf 2.6.0 на Windows, с Mingw. Команда ./configure работала, она предоставила мне Makefile, но когда я использую команду mingw32-make для запуска Makefile, у меня есть.

Я видел этот пост и этот другой . Список можно продолжать . Однако мне нужно установить MinGW (предпочтительно последнюю версию) на машину Windows, которая целенаправленно изолирована от интернета.

Я просто хочу установить MinGW64, чтобы получить 64-битный компилятор C. Я знаю, что в интернете есть тонны учебников, но они не работают для меня. Я зашел в.

Я использую Codeblocks в качестве моей IDE с MingGW. Я пытаюсь использовать буферы протокола google, но у меня проблемы с постройкой протобуфа.

файл readme для protobuf говорит:

Если вы используете Cygwin или MinGW, следуйте инструкциям по установке Unix, приведенным выше.

в инструкциях Unix говорится:

для создания и установки буферной среды выполнения протокола C++ и протокола Буфер компилятор (protoc) выполните следующие действия: $ ./configure $ make $ make check $ make install

Я не знаю, как выполнить их в Windows потому что "configure" - это скрипт Unix и Я не знаю, как выполнить его или остальные команды.

может кто-нибудь объяснить более подробно, как Я могу построить protobuf с помощью MinGW в Windows?

вот что сработало для меня:

вам нужно установить MSYS с mingw. Это минимальная unix-подобная среда оболочки, которая позволяет настраивать / создавать большинство пакетов unix. Прочитайте документы mingw о том, как установить это (с помощью MinGW-get или установщика GUI).

после установки MSYS у вас должен быть ярлык в меню "пуск"с именем " MinGW Shell". Это открывает консоль с удар.

извлеките исходный tarball в свой домашний каталог MSYS. У меня установлен mingw "D:\prog-значит, каталог был . D:\prog\MinGW\msys\1.0\home\ ". Вы можете сообщить свое имя пользователя MSYS из командной строки. Когда закончите, у вас должен быть каталог .D:\prog\MinGW\msys\1.0\home\ \protobuf-2.4.1".

в командной строке перейдите в protobuf каталог:

запустите скрипт configure (Примечание backquotes):

./configure --prefix=`cd /mingw; pwd -W`

на --prefix paramater гарантирует, что protobuf установлен в дереве каталогов mingw вместо каталогов MSYS, поэтому вы можете создавать вне оболочки MSYS (например, с помощью CodeBlocks. )

вот и все. Теперь вы сможете скомпилировать свой проект с помощью protobuf.
Вы должны уметь:

изменить: Приведу это немного в порядок. Я попытался настроить новый ПК с текущими версиями MinGW и protobuf 2.5.0, и это проблемы, которые у меня были:

в меню" Пуск "нет ярлыка " MinGW Shell".
По какой-то причине текущие установки MinGW не могут установить это.
Но есть msys.bat на <Mingw home>\msys.0 который вызывает консоль с удар. Создайте ярлык для этого пакетного файла где-нибудь.

gcc не работает из оболочки MSYS.
Мне пришлось запустить пакетный файл после установки вручную и ответить на вопросы там. Это устанавливает записи fstab, которые монтируют каталоги mingw в среде MSYS.
Вам нужно бежать <Mingw home>\msys.0\postinstall\pi.bat

этот пост постарел совсем немного, и mingw больше не равен mingw. В этот день и возраст я бы скорее рекомендовал MSYS2, который поставляется с портом pacman от ArchLinux менеджер пакетов, недавний, лучше работающий (C++11 std::поддержка потоков!) MinGW fork для 32 и 64 бит и пакет protobuf, который вам просто нужно установить и быть хорошим.

надеюсь, что это помогает!
Питер!--15-->

в моем случае ответ Питера не работал полностью, я использовал последний MinGW 4.8.1 + дистрибутив MSys (выбрал оба пакета MSys в mingw-get ).

моя проблема заключалась в том, что префикс не работал, я мог только найти файлы C:\MinGW\msys.0\local . Однако после копирования папок bin / include / libs в c:\mingw, установка работала и для меня.

У меня была та же проблема, и я решил ее, построив буферы протоколов с помощью boost build. Это сработало отлично, я могу предоставить jamfile для буферов протокола.

то, что у меня все еще есть проблемы, хотя это расширить boost build, чтобы он генерирует исходные файлы cpp из файлов proto, но это другая история.

C ++ - Protobuf не компилируется в VS2012. Теперь я хочу использовать MinGW для его компиляции в Windows. Может ли кто-нибудь дать мне несколько кратких заголовков о том, как скомпилировать protobuf на Win7 x64. Я уже установил MinGW с помощью установщика с графическим интерфейсом. Google пишет как уведомление об установке MinGW, что я должен обратиться к примечаниям по установке Unix. Но я не могу понять, как использовать автоматические инструменты в Windows.

Редактировать

Хорошо, вот что я делал до сих пор:

minGW32-make.exe работает без ошибок, но тесты не выполняются, и я не могу найти libprotobuf.lib. Есть несколько libprotobuf.dll, но мне нужна библиотека, не так ли?


Бег 14,4 км 9 9 золотых значков 56 56 серебряных значков 94 94 бронзовых знака

У вас должна быть консоль MSys вместе с установкой MinGW. Эта консоль предоставляет Linux-подобную среду, в которой вы сможете нормально использовать автоинструменты.

Если MSys не установлен, вы также можете скачать его с сайта MinGW.

cd в свой каталог с исходными текстами и попробуйте как обычно:

Некоторые библиотеки вызывают проблемы в Windows, но большинство хорошо компилируются с MinGW и MSys. Вернитесь и добавьте дополнительную информацию к своему вопросу, если у вас возникнут определенные проблемы.

minGW32-make.exe runs without errors, but no tests are running and I cant find libprotobuf.lib. There are some libprotobuf.dll but I need the lib, dont I?.

Обычно для динамической библиотеки вы получаете protobuf.dll (динамическую библиотеку) и libprotobuf.a (статическую библиотеку-оболочку).

При компоновке просто перейдите -lprotobuf к компоновщику - он будет искать оба libprotobuf.a и protobuf.lib .

( .lib это еще один формат статической библиотеки, который частично обрабатывается MinGW, но здесь не является родным.)

Читайте также: