Как установить 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, но мне нужна библиотека, не так ли?
У вас должна быть консоль 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, но здесь не является родным.)
Читайте также: