Puncte:0

erori la compilarea cu gcc

drapel cn

Folosesc ubuntu18.04 pe server. Am instalat deja gcc-4.9 sub rădăcină, dar acum vreau să instalez gcc-7.4 în propriul meu director, așa că am făcut următoarele lucruri. Mai întâi am descărcat gcc-7.4.0.tar.gz, și l-a extras.Apoi cd gcc-7.4.0/ și apoi descărcați cerințele prealabile folosind comanda ./contrib/download_prerequisites, apoi fug

mkdir build

și

CD build

Vreau să instalez gcc-7.4 în directorul meu fără root, așa că am atribuit prefix=/acasă/numele meu de utilizator/bin/ a compila. Comanda completă este după cum urmează.

../configure --prefix=/home/xxx/bin --enable-shared --enable-threads=posix --enable-languages=c,c++,fortran --disable-multilib

dar apoi am primit o eroare. Așa că m-am uitat în config.log fisier, care spune:

Model fir: posix
gcc versiunea 4.9.3 (Ubuntu 4.9.3-13ubuntu2) 
configure:4314:$? = 0
configure:4303: gcc -V >&5
gcc: eroare: opțiunea de linie de comandă nerecunoscută „-V”
gcc: eroare fatală: fără fișiere de intrare
compilarea sa încheiat.
configure:4314:$? = 4
configure:4303: gcc -qversion >&5
gcc: eroare: opțiunea de linie de comandă nerecunoscută „-qversion”
gcc: eroare fatală: fără fișiere de intrare
compilarea sa încheiat.
configure:4314:$? = 4
configure:4334: se verifică numele implicit al fișierului de ieșire al compilatorului C
configure:4356: gcc conftest.c >&5
gcc: eroare la încercarea de a executa „cc1”: execvp: Nu există un astfel de fișier sau director
configure:4360:$? = 1
configure:4397: rezultat: 
configure: programul eșuat a fost:
| /* confdefs.h */
| #define PACKAGE_NAME „”
| #define PACKAGE_TARNAME „”
| #define PACKAGE_VERSION „”
| #define PACKAGE_STRING „”
| #define PACKAGE_BUGREPORT „”
| #define PACKAGE_URL „”
| /* sfârşitul confdefs.h. */
| 
| int
| principal ()
| {
| 
| ;
| întoarce 0;
| }
configure:4403: eroare: în `/home/zxw/gcc-7.4.0/build':
configure:4407: error: compilatorul C nu poate crea executabile
Consultați `config.log' pentru mai multe detalii.

se spune Compilatorul C nu poate crea executabile,Si deasemenea încercând să execute „cc1”: execvp: Nu există un astfel de fișier sau director. Am căutat ambele probleme și am făcut referire la Aceasta, dar nu ajută.

Sunt nou în acest domeniu și nu știu exact ce se întâmplă. Ma poate ajuta cineva? Dacă aveți nevoie de mai multe informații, vă rog să-mi spuneți, nu știu ce pot face pentru a le verifica în continuare.

Actualizați:
1.Nu pot instala ambele versiuni la nivel de sistem, deoarece pregătesc un mediu pe serverul laboratorului meu la care nu am acces root. Deci, acesta este motivul pentru care am încercat să instalez versiunea de gcc de care am nevoie în directorul meu.
2. Motivul pentru care am nevoie de gcc-7.4.0 este pentru că pregătesc un mediu pentru detectron2 proiect, care este un proiect oferit de Facebook și este folosit pentru a învăța detectarea obiectelor. Și din cerințele de instalare ale detectron2, trebuie să mă pregătesc cuda și gcc mai întâi, acum am cuda-10.1,ubuntu-18.04 , așa că am căutat de ce versiune de gcc am nevoie și de pe site-ul oficial nvidia, scrie versiunea gcc care se potrivește cuda-10.1 și ubuntu-18.04 este și numai este gcc-7.4, așa că instalez această versiune specială de gcc.
3. Îmi pare rău că nu știu cum gcc-4.9 instalat, motivul este același cu punctul 1, sunt doar un utilizator al serverului meu de laborator, acesta este deja aici de când m-am alăturat laboratorului.

a doua actualizare. am urmărit acest și am încercat din nou, comenzile pe care le-am folosit sunt cele de mai jos.

tar xzf gcc-7.4.0.tar.gz
cd gcc-7.4.0
./contrib/download_prerequisites
cd ..
mkdir objdir
cd objdir
/home/xxx/gcc-7.4.0/configure --prefix=/home/xxx/GCC-7.4.0

și apoi a primit același raport de eroare.
Mă îndoiesc că este ceva în neregulă cu versiunea existentă a gcc, așa că nu pot construi o versiune nouă bazată pe versiunea anterioară a gcc.

drapel hr
Eroarea sugerează că există o problemă cu instalarea curentă (gcc-4.9?) - executabilul său `cc1` există într-adevăr acolo unde `gcc` îl poate găsi? Am `gcc-4.8` pe sistemul meu 18.04 și este `/usr/lib/gcc/x86_64-linux-gnu/4.8/cc1`, de exemplu.
sancho.s ReinstateMonicaCellio avatar
drapel pl
După cum se arată într-unul dintre linkurile postate în răspunsul meu, (a se vedea [acest](https://askubuntu.com/a/647593/226614)), `gcc-4.9` ar putea lipsi unele complemente... (libc6, elemente esențiale de construcție etc.)
drapel hr
FWIW Am urmat a doua metodă pe cutia mea 18.04 cu gcc-4.8 (în special 4.8.5-4ubuntu8 din bionic/universe repo) și s-a configurat bine și (eventual) construit cu succes. Nu cred că există o problemă cu gcc-4.9 să fie „prea vechi” pentru a-l construi
Puncte:0
drapel pl

EDITAȚI | ×.

  1. Puteți încerca să instalați un precompilat gcc-7.4.0 numai pentru utilizatorul dvs., 1, 2, YMMV.

Recomandări și alte note:

  1. Instalați ambele versiuni la nivel de sistem. Apoi folosiți actualizare-alternative pentru a alege care este versiunea implicită care va fi utilizată. De fapt, de multe ori acest lucru se face automat în timpul procesului de instalare, iar ulterior vă puteți modifica selecția prin actualizare-alternative, vedea acest.
    Și puteți alege, de asemenea, ce versiune să utilizați pentru fiecare utilizator, cum ar fi Aici. Acest lucru este mult mai simplu decât ceea ce încercați să faceți și va face ambele versiuni disponibile pentru toți utilizatorii.

  2. Dacă aveți vreun motiv pentru a vă prefera în continuare metoda (ar fi util dacă ați indica motivul/ele, alții ar putea oferi, de asemenea, informații suplimentare), vă sugerez să urmați acest (cu numărul de versiune adecvat). Se pare că ai sărit/ai schimbat o parte din ea. De exemplu, o locație tipică este --prefix=/home/xxx/gcc-<versiune>, nu --prefix=/home/xxx/bin. Indiferent dacă aceasta este cauza problemelor, vă sugerez să începeți cu comenzile enumerate și, dacă funcționează, începeți să adăugați configurați steaguri după cum se dorește.

  3. S-ar putea să luați în considerare instalarea pachetelor precompilate pentru cerințele preliminare, în loc de ./contrib/download_prerequisites, așa cum este descris Aici.

  4. Vă rugăm să postați comanda exactă pe care ați folosit-o la „deja instalat gcc-4.9 sub rădăcină” (vă rugăm să luați 30 de secunde pentru aceasta). Instalarea „sub rădăcină” nu este ceva ce ați dori de obicei să faceți.

  5. Aș merge mai întâi cu sugestiile, în loc să încerc să depanez de ce ați primit erorile pe care le-ați primit. Doar pentru a oferi câteva indicații posibil cauze (nu voi aprofunda mai mult în acest lucru):

    5.1. Pentru gcc: eroare: opțiunea de linie de comandă nerecunoscută „-V”: 1, 2.

    5.2. Pentru gcc: eroare: opțiunea de linie de comandă nerecunoscută „-qversion”: Vezi deasupra.

    5.3. Pentru gcc: eroare la încercarea de a executa „cc1”: execvp: Nu există un astfel de fișier sau director: 1.

    5.4. Pentru configure:4407: error: compilatorul C nu poate crea executabile: 1 ca exemplu. Unul dintre voi configurați opțiunile este probabil de vină. Începeți așa cum este indicat la punctul 2.

Kyrie Erving avatar
drapel cn
Mulțumesc mult. Am actualizat unele informații pe care le-ați menționat și încerc să fac acești pași pe care i-ați menționat, voi actualiza din nou după ce le termin.
drapel hr
`5.1` și `5.2` îmi par absolut normale - scriptul `./configure` încearcă o grămadă de opțiuni pentru a determina cum arată mediul de construcție
sancho.s ReinstateMonicaCellio avatar
drapel pl
@steeldriver - De acord.
Puncte:0
drapel ph

Am observat imediat asta:

Model de fir: posix
versiunea gcc 4.9.3 (Ubuntu 4.9.3-13ubuntu2) 

Se pare că încearcă să folosească vechea versiune de gcc pe care ați instalat-o, 4.9, pentru a construi 7.4. M-am uitat puțin în jur și nu am găsit nicio indicație despre care versiuni mai vechi de gcc sunt capabile să construiască versiuni mai noi, dar nu m-aș mira dacă 7.4 folosește caracteristici pe care 4.9 nu le suportă.

Există un motiv special pentru care trebuie să utilizați 4.9.3 pentru a construi 7.4.0? Dacă nu, aș sugera să instalați versiunea predefinită a Ubuntu a gcc (sudo apt install gcc-7), care se pare că va furniza 7.5.0 pe Ubuntu 18.04 și îl va folosi în schimb.

Kyrie Erving avatar
drapel cn
Mulțumesc mult, motivul pentru care trebuie să folosesc `gcc-7.4` este că site-ul web nvidia spune că singura versiune de gcc care se potrivește cu `cuda-10.1` și `ubuntu 18.04` este `gcc-7.4`, așa că tocmai am încercat pentru a instala versiunea particulară 7.4 în loc să folosesc versiunea preconstruită a gcc, care îmi poate oferi versiunea 7.5.
Knud Larsen avatar
drapel by
gcc-7.5 este o versiune de remediere a erorilor a „7.4”. .... Ești sigur că gcc-7.5 nu funcționează cu CUDA? ..... Construirea gcc-7.4 : Este necesar compilatorul de sistem g++-7.5 / gcc-7.5.

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.