Comment construire de Google protobuf dans Windows avec MinGW?
J'utilise Codeblocks comme mon IDE avec MingGW.
Je suis en train d'utiliser google protocol buffers,
mais je vais avoir du mal à constituer le protobuf.
Le fichier readme pour protobuf dit:
Si vous êtes en utilisant Cygwin ou MinGW,
suivez les Unix instructions d'installation ci-dessus.
Unix instructions dit:
De construire et d'installer le C++ Tampon Protocole d'exécution et le Protocole
Tampon compilateur (protoc) exécuter les opérations suivantes:
$ ./configure
$ make
$ make check
$ make install
Je ne sais pas comment effectuer ces dans Windows
parce que "configurer" est un script Unix et
Je ne sais pas comment l'exécuter, ou le reste des commandes.
Quelqu'un peut m'expliquer plus en détail comment
Je peux construire protobuf en utilisant MinGW sous Windows?
Vous devez vous connecter pour publier un commentaire.
Voici ce qui a fonctionné pour moi:
Vous devez installer MSYS avec mingw. C'est un minimum de type unix shell environnement qui vous permet de configurer/mettre la plupart des systèmes unix paquets. Lire la mingw docs sur la façon de l'installer (avec mingw-get ou l'interface graphique d'installation).
Une fois que vous avez installé MSYS, vous devriez avoir un raccourci dans le menu démarrer, nommé "MinGW Shell". Ouvre une console avec un bash.
Extraire l'archive source de votre MSYS répertoire home. J'ai installé mingw dans "D:\prog", de sorte que le répertoire a été "D:\prog\MinGW\msys\1.0\home\<nom d'utilisateur>". Vous pouvez dire à votre MSYS nom d'utilisateur à partir de l'invite du shell. Lorsque vous avez terminé, vous devriez avoir un répertoire "D:\prog\MinGW\msys\1.0\home\<nom d'utilisateur>\protobuf-2.4.1".
À l'invite de commandes, accédez au protobuf répertoire:
cd protobuf-2.4.1
Exécuter le script de configuration (notez les backquotes):
./configure --prefix=`cd /mingw; pwd -W`
La
--prefix
paramater permet de s'assurer de protobuf est installé dans le répertoire mingw arbre au lieu de la MSYS répertoires, de sorte que vous pouvez construire à l'extérieur de la MSYS shell (par exemple, avec CodeBlocks...)Run:
make
Installer:
make install
Que c'est. Vous devriez maintenant être en mesure de compiler votre projet avec protobuf.
Vous devriez être capable de:
protoc
de votre projet/makefiles#include <google/protobuf/message.h>
etc.-lprotobuf
ou-lprotobuf-lite
HTH
Peter
Edit:
Apportant un peu plus à jour. J'ai essayé la configuration d'un nouveau PC avec les versions actuelles de MinGW et protobuf 2.5.0, et ce sont les problèmes que j'ai eus:
Il n'y a pas de "MinGW Shell" raccourci dans le menu démarrer.
Pour une raison quelconque courant MinGW installations ne parviennent pas à l'installer.
Mais il y a un
msys.bat
dans<Mingw home>\msys\1.0
, ce qui ouvre une console avec un bash. Créer un raccourci vers ce fichier batch quelque part.gcc ne fonctionne pas à partir du shell de MSYS.
J'ai eu à exécuter un post-installation du fichier de commandes manuellement et répondez aux questions. Ceci définit fstab entrées de monter le mingw répertoires dans le MSYS de l'environnement.
Vous devez exécuter
<Mingw home>\msys\1.0\postinstall\pi.bat
Mon antivirus Avira interféré avec le protobuf compilation.
Il s'est plaint de l'généré protoc.exe être un "TR/Crypt.XPACK.Gen" cheval de troie et bloqué l'accès à ce fichier, résultant en un corrompu construire.
J'ai des messages d'erreur en disant quelque chose comme
protoc:./.libs/lt-protoc.c:233: FATAL: couldn't find protoc.
lorsque vous essayez de démarrer protoc.J'ai dû désactiver Avira analyseur en temps réel et
make clean && make && make install
nouveauEdit #2:
Ce post a vieilli un peu, et mingw n'est pas égale à mingw plus.
En cette journée et l'âge, je recommande plutôt MSYS2 qui est livré avec un port de ArchLinux du gestionnaire de paquets pacman, un récent, plus de travail (c++11 std::thread de soutien!) mingw fourche pour à la fois 32 bits et 64 bits, et un protobuf package que vous avez juste besoin d'installer et d'être bon.
Rendez-vous ici à télécharger!
Espérons que cette aide!
Peter
./configure
peine à trouver leszlib
de la bibliothèque et de lamake
échoue comme décrit dans la problème 2089. Pour plus de détails, voir mon question.Dans mon cas, la réponse de Pierre ne fonctionne pas complètement, j'ai utilisé la dernière MinGW 4.8.1 + le MSys de distribution (sélectionné à la fois MSys paquets dans
mingw-get
).Mon problème était que le préfixe n'a pas vraiment de travail, je n'ai pu trouver les fichiers en
C:\MinGW\msys\1.0\local
. Cependant, après la copie de la bin /include /libs dossiers àc:\mingw,
, l'installation a fonctionné pour moi aussi.J'ai eu le même problème et je l'ai résolu par la construction de tampons de protocole d'utilisation de boost construire.
Qui a bien fonctionné, je peux fournir un jamfile pour protocol buffers.
Ce que j'ai toujours des problèmes avec, cependant, est de prolonger boost construire de sorte qu'il génère rpc fichiers source de proto fichiers, mais c'est une autre histoire.
autoconf
échoue; toute chance d'une mise à jour de réponse?