Я пытаюсь создать образец протоблочного приложения 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)
Спасибо за помощь!
Если вы создали protobuf самостоятельно, где вы его установили? В системе '/ usr/lib'? В обычном '/ usr/local/lib'? Где-нибудь еще? –
вы должны вставить команду компоновщика и убедиться, что ваш protobuf lib находится в пути поиска. – Bruce
Я установил _libprotobuf_ в '/ usr/lib'. И я использую 'LINK_DIRECTORIES (/ usr/lib)' в CMakeList.txt, чтобы добавить этот путь к каналу serer linker. – piphonom