Comment faire de CMake trouver google protobuf sur windows?
Je suis en utilisant Google Protobuf avec CMake. Sous Linux, l'Protobuf bibliothèque est trouvé par:
find_package( Protobuf REQUIRED )
CMake sait où chercher pour la bibliothèque. Comment bien puis-je l'obtenir pour fonctionner dans Windows? Est-il une variable d'environnement je doit créer, comme PROTOBUF_LIB
? J'ai regardé dans FindProtobuf.cmake
mais ne peut pas déterminer ce qui est nécessaire.
Vous devez vous connecter pour publier un commentaire.
J'ai aussi eu du mal avec cela. Pour être plus clair.
Sur Windows (7, similaire sur les anciens windows):
Démarrer --> Panneau de configuration --> Système - > Paramètres Système Avancés --> Variables d'Environnement
Puis sur le panneau du haut ou du bas de l'écran (si vous souhaitez qu'elle s'applique à d'autres utilisateurs à faire sur le fond), la création de deux nouvelles variables. Le 1er est
Après vous créez les variables appuyez sur OK et puis re-démarrer cmake (ou de nettoyer le cache).
Nouveau protobuf v3 ont CMake soutien hors de la boîte.
Vous pouvez utiliser protobuf dépôt en tant que sous-module et il suffit d'utiliser
pour obtenir tous protobuf cibles.
Vous pouvez ensuite ajouter de la dépendance à protobuf avec
Un autre façon possible est disponible. Avec protobuf de CMake de configuration, vous pouvez construire et installer protobuf binaires et leur utilisation à travers plusieurs projets dans le développement de votre:
Ensuite, vous pouvez utiliser
find_package
avec indicateur de chemins commeEspère que cette aide.
Protobuf sur windows appels find_library qui sera à la recherche de votre CHEMIN et LIB variables.
J'ai trouvé le moyen d'utiliser protobuf v2 avec cmake sur Windows et de le construire avec les paramètres de votre projet. S'il vous plaît, essayez de regarder à cmake-externe-packages de projet et protobuf-v2 CMakeLists qui faire le travail.
En fait, je l'ai écrit parce que
ExternalProject_Add
est mal (parce que ne des trucs en phase de construction au lieu de la phase de génération).Ce CMakeLists.txt télécharger protobuf de protobuf de communiqués de github, extrait, et émettent cmake objectifs qui vous devez ajouter une référence à
target_link_libraries
.Utilisation git-sous-arborescence, git-sous-module ou tout simplement copier ce contenu du référentiel à votre référentiel sous-dossier.
Puis ajouter les packages que vous souhaitez utiliser avec
add_subdiretory
. Pour protobuf, utilisation:Protobuf contient seront copiés à
path/to/cmake-external-packages/include
dossier. Vous pouvez personnaliser son emplacement de premier niveau dans CMakeLists:Juste référence protobuf pour votre exécutable:
Espère que cette aide.