Ответ 1
Вот что сработало для меня:
-
Вам нужно установить MSYS с помощью mingw. Это минимальная среда, похожая на unix, которая позволяет вам настраивать/делать большинство пакетов unix. Прочтите документы mingw о том, как их установить (либо с помощью mingw-get, либо с помощью установщика GUI).
-
После того, как вы установили MSYS, у вас должен быть ярлык в вашем стартовом меню под названием "MinGW Shell". Это открывает консоль с bash.
-
Извлеките исходный архив в домашний каталог MSYS. У меня есть mingw, установленный в "D:\prog", поэтому каталог был "D:\prog\MinGW\msys\1.0\home\< имя пользователя > ". Вы можете указать свое имя пользователя MSYS в командной строке. Когда это будет сделано, у вас должен быть каталог "D:\prog\MinGW\msys\1.0\home\< имя пользователя > \protobuf-2.4.1".
-
В командной строке перейдите в каталог protobuf:
cd protobuf-2.4.1
-
Запустите configure script (обратите внимание на обратные кавычки):
./configure --prefix=`cd /mingw; pwd -W`
Параметр
--prefix
гарантирует, что protobuf устанавливается в дереве каталогов mingw вместо каталогов MSYS, поэтому вы можете строить вне оболочки MSYS (например, с помощью CodeBlocks...) -
Запустить make:
make
-
Установка:
make install
-
Что это. Теперь вы можете скомпилировать свой проект с protobuf.
Вы должны уметь:- вызов
protoc
из вашего проекта /make файлов -
#include <google/protobuf/message.h>
и т.д. - ссылка с
-lprotobuf
или-lprotobuf-lite
- вызов
НТН
Питер
Изменить: Привести это немного более актуально. Я попытался настроить новый ПК с текущими версиями MinGW и protobuf 2.5.0, и это были проблемы, которые у меня были:
-
В стартовом меню нет ярлыка "MinGW Shell".
По какой-то причине текущие установки MinGW не могут установить это.
Но естьmsys.bat
в<Mingw home>\msys\1.0
, который вызывает консоль с bash. Создайте ярлык для этого командного файла где-нибудь. -
gcc не работает из оболочки MSYS.
Мне пришлось запускать пакетный файл после установки вручную и отвечать на вопросы там. Это устанавливает записи fstab, которые монтируют потоковые каталоги в среде MSYS.
Вам нужно запустить<Mingw home>\msys\1.0\postinstall\pi.bat
-
Мой антивирус Avira вмешивался в компиляцию protobuf.
Он жаловался, что сгенерированный protoc.exe был трояном "TR/Crypt.XPACK.Gen" и заблокировал доступ к этому файлу, что привело к поврежденной сборке.
Я получил сообщения об ошибках, говорящие что-то вродеprotoc:./.libs/lt-protoc.c:233: FATAL: couldn't find protoc.
при попытке запустить protoc.
Мне пришлось отключить сканер Avira реального времени иmake clean && make && make install
снова
Изменить # 2:
Это сообщение состарилось довольно много, и mingw больше не сравнивает mingw. В этот день и в возрасте, я бы предпочел рекомендовать MSYS2, который поставляется с портом менеджера пакетов ArchLinux pacman, новейшей, улучшенной (С++ 11 std:: thread support!) Mingw fork для 32 и 64 бит и пакет protobuf, который вам просто нужно установить и быть хорошим.
Перейдите сюда, чтобы загрузить!
Надеюсь, что это поможет!
Питер