How to make CMake findet google protobuf auf windows?
Ich bin mit Google Protobuf mit CMake. Auf Linux die Protobuf-Bibliothek gefunden wird durch:
find_package( Protobuf REQUIRED )
CMake weiß, wo zu suchen die Bibliothek. Wie aber bekomme ich diese zu arbeiten in Windows? Gibt es eine Umgebungsvariable, die ich erstellen soll, wie PROTOBUF_LIB
? Ich habe mir in FindProtobuf.cmake
aber kann nicht herausfinden, was erforderlich ist.
InformationsquelleAutor John W | 2010-11-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich kämpfte auch mit diesem. Um deutlicher zu sein.
Unter Windows (7, ähnlich wie bei älteren windows):
Start --> Systemsteuerung --> System --> Erweiterte Systemeinstellungen --> Umgebungsvariablen
Dann entweder auf der Oberseite oder der Unterseite (wenn Sie möchten, dass es auch für andere Nutzer es auf der Unterseite), erstellen Sie zwei neue Variablen. Der 1. ist
Nachdem Sie die Variablen erstellen drücken Sie OK und dann neu starten cmake (oder reinigen Sie den cache).
InformationsquelleAutor Jubei
Protobuf auf windows-Aufrufe find_library die Suche nach Ihrem WEG und LIB-Variablen.
InformationsquelleAutor RobertJMaynard
Neuesten protobuf v3 haben CMake-support out of the box.
Könnten Sie protobuf-repository als Submodul und verwenden nur
bekommen alle protobuf Ziele.
Dann können Sie in Abhängigkeit von protobuf mit
Anderen möglicher Weg ist, zur Verfügung. Mit protobuf ist CMake Konfiguration Sie können bauen und installieren protobuf-Binärdateien einmal und verwenden Sie Sie über mehrere Projekte in der Entwicklung:
Dann können Sie
find_package
mit Tipp-Pfade wieHoffe, das hilft.
InformationsquelleAutor hal
Fand ich die Art der Verwendung von protobuf v2 mit cmake auf Windows und erstellen Sie mit den Einstellungen Ihres Projektes. Bitte, versuchen Sie schauen, um cmake-externe-Projekt Pakete und protobuf-v2-CMakeLists, die die Arbeit tun.
In der Tat, ich schrieb es, weil
ExternalProject_Add
falsch ist (da tut sich Sachen in der build-phase statt generation phase).Diese CMakeLists.txt herunterladen protobuf von protobuf ist github releases, extrahieren und ausgeben cmake Ziele, die Sie sollten Sie auf Verweis hinzufügen, um mit
target_link_libraries
.Verwenden git-subtree, git-submodule oder einfach nur kopieren Sie diese repository-Inhalt zu Ihrer repository-Unterordner.
Dann Pakete hinzufügen, die Sie verwenden möchten, mit
add_subdiretory
. Für protobuf, Verwendung:Protobuf ist, umfasst kopiert werden
path/to/cmake-external-packages/include
Ordner. Sie können anpassen, Ihre Lage in einer top-level-CMakeLists:Nur Referenz protobuf für die ausführbare Datei:
Hoffe, das hilft.
InformationsquelleAutor hal