Puncte:0

lipsesc libm.so.6 și libstdc++.so.6

drapel jp
A D

Am un program pe care l-am compilat prin qt creator și pare să funcționeze bine pe computerul meu, dar încerc să îl rulez pe un cluster de computer la distanță și scuipă aceste mesaje de eroare.

./programs/sampleapp: /lib64/libm.so.6: versiunea „GLIBC_2.29” nu a fost găsită (solicitat de ./programs/sampleapp)
./programs/sampleapp: /lib64/libstdc++.so.6: versiunea „GLIBCXX_3.4.26” nu a fost găsită (solicitată de ./programs/sampleapp)
./programs/sampleapp: /lib64/libstdc++.so.6: versiunea „GLIBCXX_3.4.21” nu a fost găsită (solicitată de ./programs/sampleapp)

Bănuiesc că aceste dependențe lipsesc? Nu știu unde să le găsesc. Cautarea pe Google pe ele nu mă duce la nimic care să funcționeze și am încercat să caut pe propriul meu computer fără succes.

guiverc avatar
drapel cn
Vă rugăm să consultați https://askubuntu.com/help/on-topic, Ubuntu și *arome* oficiale ale Ubuntu (https://ubuntu.com/download/flavours) sunt la subiect pe acest site. Link-ul la subiect oferă site-uri SE alternative pentru sistemele de operare non-Ubuntu. *Niciun sistem pe subiect aici nu oferă versiunea bibliotecii necesară, așa că pariez că nu utilizați un sistem pe subiect*
drapel hr
AFAIK mesajul nu înseamnă că bibliotecile *lipsesc*, înseamnă că sunt prea vechi - sau, mai precis, că programul a fost construit împotriva versiunilor mai noi ale bibliotecilor decât sunt prezente pe sistemul țintă.
Knud Larsen avatar
drapel by
Să presupunem că clusterul dvs. la distanță are versiunea glibc / libc6 2.27: va trebui apoi să vă construiți aplicația cu un „OS libc6 - 2.27” .... sau pe un sistem de operare și mai vechi. .... Exemplu : Ubuntu 18.04 are libc6 - 2.27 .
Puncte:1
drapel es

Tocmai ați descoperit de ce trebuie să reconstruiți aplicații pentru diferite arome sau chiar versiuni de Linux. Unele pot rula pe o varietate de alte distribuții, dar nu există nicio garanție.

În general, construiți aplicația pe mașina (sau cel puțin pe o mașină cu aceeași distribuție) pe care doriți să o rulați. Sau, mai bine, construiți software pachete (.deb pentru Ubuntu / Debian, .rpm pentru SUSE / Red Hat / Fedora / CentOS) pentru a automatiza procesul și pentru a se asigura că dependențele (cum ar fi acele biblioteci partajate) sunt gestionate automat.

Nu, nu este un lucru ușor de făcut, dar este un lucru necesar.

A D avatar
drapel jp
A D
Bine, sistemul meu este bazat pe Ubuntu, dar ținta este CentOS 7. Așa că cred că voi încerca să scriu un makefile și să văd dacă îl pot construi acolo cu gcc. și atunci poate voi face o datorie în viitor dacă trebuie să rulez asta în multe locuri.
HuHa avatar
drapel es
Deoarece ați menționat Qt în cuvintele cheie ale întrebării dvs., mai bine începeți cu QMake sau CMake. Makefile-urile scrise manual sunt prea dureroase pentru complexitatea actuală, în special când vine vorba de ce biblioteci partajate trebuie să le legați la proiectul dvs. și de parametrii exacti pentru asta. Atât QMake, cât și CMake fac asta pentru tine.
A D avatar
drapel jp
A D
În sfârșit, l-am făcut să ruleze după ce l-am construit de la distanță. Lucrul amuzant este că am transferat versiunile anterioare ale programului construit cu QT la nivel local și l-am rulat fără probleme pe același cluster. Dar scot doar câteva fișiere sursă și dintr-o dată nu mai este portabil. Acum trebuie să-mi dau seama de ce.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.