Ich versuche, dieses Projekt zu kompilieren: https://github.com/shaochuan/cmake-protobuf-example. Ich habe Protobuf mit msvc2015 (x64) erfolgreich kompiliert. Das Prüfprojekt läuft ohne Fehler (Alle Ergebnisse: PASSED).Protobuf: Kann nicht öffnen Include-Datei common.h in message.pb.h Datei
stelle ich das Projekt in Cmake, vorausgesetzt alle Pfade:
Protobuf_INCLUDE_DIR = C:/TK/protobuf-330/msvc2015_64/install/include Protobuf_LIBRARY_DEBUG = C:/TK/protobuf-330/msvc2015_64 /install/lib/libprotobufd.lib Protobuf_LITE_LIBRARY_DEBUG = C: /TK/protobuf-330/msvc2015_64/install/lib/libprotobuf-lited.lib Protobuf_PROTOC_EXECUTABLE = C:/TK/protobuf-330/msvc2015_64/install/bin/protok Exe Protobuf_PROTOC_LIBRARY_DEBUG = C: /TK/protobuf-330/msvc2015_64/install/lib/libprotocd.lib Protobuf_SRC_ROOT_FOLDER = C: \ TK \ src \ protobuf-330 \ src
Das Proto-Projekt wird ohne Fehler kompiliert. Es enthält die Dateien message.cc und message.h. Die CMakeLists.txt sieht wie folgt aus:
INCLUDE(FindProtobuf)
FIND_PACKAGE(Protobuf REQUIRED)
INCLUDE_DIRECTORIES(${PROTOBUF_INCLUDE_DIR})
PROTOBUF_GENERATE_CPP(PROTO_SRC PROTO_HEADER message.proto)
ADD_LIBRARY(proto ${PROTO_HEADER} ${PROTO_SRC})
Wenn ich das Hauptprojekt mit folgenden CMakeLists.txt kompilieren:
PROJECT(rpc)
CMAKE_MINIMUM_REQUIRED (VERSION 2.6)
ADD_SUBDIRECTORY(proto)
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
ADD_EXECUTABLE(main main.cpp)
TARGET_LINK_LIBRARIES(main proto ${PROTOBUF_LIBRARY})
Wenn ich das bauen der Fehler C1083 sagen aufgetreten:
"Cannot open include file: 'google/protobuf/stubs/common.h': No such file or directory" c:\tktest\protobuftest\src\proto\message.pb.h
In der Datei lautet die fehlerhafte Zeile:
#include <google/protobuf/stubs/common.h>
Ich kann nicht herausfinden, was schief gelaufen ist. Einige Hinweise sind willkommen. Gibt es einige Probleme mit CMake + Protobuf + Visual Studio 2015? Vielen Dank im Voraus.
Dank Macxx und Utopie. Ich habe beide vorgeschlagenen Zeilen am Ende des Protoprojekts CMakeLists.txt hinzugefügt und ändere die Projekteigenschaften beider Projekte in "Multi-threaded Debug (/ MTd)". Und jetzt funktioniert es. Konnte immer noch herausfinden, was das Problem war. Irgendwelche Vorschläge sind willkommen. – KabCode