2016-08-25 2 views
0

Я пытаюсь создать образец протоблочного приложения C++ с CMake. Но компоновщик не может найти некоторые методы, связанные с protobuf.Не удается создать тестовое приложение на C++ с protobuf от Google

Я использую пример .proto файл от developers guide. Но когда линкер пытается построить объектный файл для Protobuf генерируется кодом С ++ У меня есть много ошибок, как это:

undefined reference to `google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(int, std::string const&, google::protobuf::io::CodedOutputStream*)' 
undefined reference to `google::protobuf::io::CodedOutputStream::WriteStringWithSizeToArray(std::string const&, unsigned char*)' 
undefined reference to `google::protobuf::internal::empty_string_' 
undefined reference to `google::protobuf::internal::InitEmptyString()' 
undefined reference to `google::protobuf::internal::empty_string_once_init_' 
undefined reference to `google::protobuf::internal::WireFormat::VerifyUTF8StringFallback(char const*, int, google::protobuf::internal::WireFormat::Operation, char const*)' 

я использую Protobuf 2.6.1 построил себя с GCC 4.8.4. Пример приложения построен CMake в QTCreator с QT 5.5.1 Toolset и GCC 4.8.4. Есть мой CMakeList.txt

project(protobuf-test) 
cmake_minimum_required(VERSION 2.8) 
aux_source_directory(. SRC_LIST) 
add_executable(${PROJECT_NAME} ${SRC_LIST}) 
LINK_DIRECTORIES(/usr/lib) 
TARGET_LINK_LIBRARIES(${PROJECT_NAME} pthread protobuf) 

Спасибо за помощь!

+0

Если вы создали protobuf самостоятельно, где вы его установили? В системе '/ usr/lib'? В обычном '/ usr/local/lib'? Где-нибудь еще? –

+1

вы должны вставить команду компоновщика и убедиться, что ваш protobuf lib находится в пути поиска. – Bruce

+0

Я установил _libprotobuf_ в '/ usr/lib'. И я использую 'LINK_DIRECTORIES (/ usr/lib)' в CMakeList.txt, чтобы добавить этот путь к каналу serer linker. – piphonom

ответ

0

Проблема была в пути поиска компоновщика. Linker пытался использовать libprotobuf из дистрибутива ОС (версия 8.0.0) вместо lib, созданного мной (версия 9.0.1).

 Смежные вопросы

  • Нет связанных вопросов^_^