Я после cpp tutorial on google protocol buffersC++ Linux Протокол Google Буферы - не может запустить скомпилированный прото CPP файлы из учебника
Я установил Google протокола Буферы на Ubuntu и скомпилирован файл .proto, так что я получил pb.h и рь. cc сгенерированные файлы.
Я сделал ReadAddressBook.cpp очень минимален. Он просто создает объект proto и проверяет соответствие версии.
#include <iostream>
#include <fstream>
#include <string>
#include "address_book.pb.h"
using namespace std;
int main(){
GOOGLE_PROTOBUF_VERIFY_VERSION;
tutorial::AddressBook address_book;
return 0;
}
Я составил его с
g++ -c ReadAddressBook.cpp
(также с G ++ -c ReadAddressBook.cpp -lprotobuf -lpthread но он дал те же самые результаты)
Однако при работе:
g++ -o ReadAddressBook ReadAddressBook.o
Это дало мне ссылки на google protobuf src было недоступно. Почему это должно быть?
Вы должны добавить 'address_book.pb.cc' для компиляции и связывания. попробуйте этот 'g ++ ReadAddressBook.cpp address_book.pb.cc -lprotobuf -lpthread'. – lnman
@nomem Затем, когда я скомпилирую после этого, поставлю g ++ -c ReadAddressBook.cpp или g ++ -c ReadAddressBook.cpp address_book.pb.cc? Какими будут следующие шаги? – BDillan
Команда, которую я дал, напрямую выполнит исполняемый файл. Если вы хотите скомпилировать ссылку, тогда попробуйте следующее: 'g ++ -c ReadAddressBook.cpp address_book.pb.cc' и' g ++ -o ReadAddressBook ReadAddressBook.o address_book.pb.o -lprotobuf -lpthread' – lnman