выполнить двоичный файл с помощью ошибки google protobuf - PullRequest
0 голосов
/ 09 мая 2020

Я разрабатываю приложение на C ++ под Ubuntu 16 с помощью google protobuf. Когда я компилирую и запускаю на одном компьютере, он работает нормально, но когда я пытаюсь запустить его на другом Ubuntu 16, я получаю следующую ошибку:

./APP: Symbol `_ZTVN6google8protobuf11MessageLiteE' has different size in shared object, consider re-linking
./APP: Symbol `_ZTVN6google8protobuf7MessageE' has different size in shared object, consider re-linking

Если я компилирую тот же источник на этой второй машине, он работает нормально, но если я запускаю на первом компьютере, я тоже получаю сообщение об ошибке.

Я попытался скопировать все библиотеки, перечисленные с ldd, на путь на другом компьютере, и я использую экспорт LD_LIBRARY_PATH, и тоже не работает.

ldd результат на обеих машинах одинаковый.

linux-vdso.so.1 =>  (0x00007ffd40fda000)
libsqlite3.so.0 => /usr/lib/x86_64-linux-gnu/libsqlite3.so.0 (0x00007f011b4b3000)
libzmq.so.5 => /usr/lib/x86_64-linux-gnu/libzmq.so.5 (0x00007f011b24d000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f011b030000)
libprotobuf.so.22 => /usr/local/lib/libprotobuf.so.22 (0x00007f011ab87000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f011a805000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f011a5ef000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f011a225000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f011a021000)
libsodium.so.18 => /usr/lib/x86_64-linux-gnu/libsodium.so.18 (0x00007f0119dc3000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f0119bbb000)
/lib64/ld-linux-x86-64.so.2 (0x00007f011b788000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f01198b2000)
...