У меня странный вопрос
Я компилирую приложение на ВМ с установленным protoc 3.6.1 .
Затем он создает ZIP-файл, который я копирую на другой компьютер, где я распаковываю его и запускаю.
Ни одна из команд, которые я запускаю на этом компьютере, не требует использования протокольных буферов.
loop = g_main_loop_new( NULL, FALSE );
gst_init(NULL, NULL);
snprintf( str_pipeline, sizeof( str_pipeline ), "appsrc name=mysource ! videoconvert ! " "video/x-raw,width=1920,height=1080,format=NV12 ! vaapih264enc ! h264parse ! rtph264pay ! " "udpsink host=%s port=5600", "xxx.xx.xx.xxx");
// Instruct GStreamer to construct the pipeline
pipeline = gst_parse_launch( str_pipeline, &gerror );
if( !pipeline )
{
printf( "gst_parse_launch error. Cannot launch GStreamer..: %s\n", gerror->message );
return false;
}
appsrc = gst_bin_get_by_name( GST_BIN( pipeline ), "mysource" );
app_caps = gst_caps_new_simple( "video/x-raw", "format", G_TYPE_STRING, "RGB", "width", G_TYPE_INT, WIDTH, "height", G_TYPE_INT, HEIGHT, NULL );
Однако, когда я запускаю приведенный выше код командой gstreamer (в частности, gst_parse_launch ()), это дает мне эту ошибку -
[libprotobuf FATAL google/protobuf/stubs/common.cc:79] This program was compiled against version 2.6.1 of the Protocol Buffer runtime library, which is not compatible with the installed version (3.6.1). Contact the program author for an update. If you compiled the program yourself, make sure that your headers are from the same version of Protocol Buffers as your link-time library. (Version verification failed in "/build/mir-O8_xaj/mir-0.26.3+16.04.20170605/obj-x86_64-linux-gnu/src/protobuf/mir_protobuf.pb.cc".)
Я не думаю, что gstreamer имеет какое-либо отношение к protoc, но я хотел это подтвердить. Gstreamer 1.0 скомпилирован с протоколом 2.6.1?
Если это не так, почему я получаю эту ошибку на ВМ, где я разархивирую? Он не имеет установленного протокола и работает на Ubuntu 16.04.