Redhat 7.3 gcc 3.2

12 отговора 254 прегледа
#1

Redhat 7.3 gcc 3.2

Redhat 7.3 върви с gcc 2.96 доста нестандартна версия за gcc.

Например с него не мога да си компилирам Mplayer.

Та искам да попитам мога ли да взема RPM на gcc 3.2 от Redhat 8.0
и да ги инсталирам на Redhat 7.3.

Ако да как ???

Отговор
в отговор на redhatcho #2

Re: Redhat 7.3 gcc 3.2

mplayer se compilira s gcc 2.96 i si raboti savsem normalno.

pri configurirane mu dai --disable-gcc-checking

Отговор
в отговор на redhatcho #3

иди на сайта на mplayer.....

да видиш какво са напопържали за gcc2.96 -
а иначе, правилното решение е да си го изкомпилираш с gcc2.95 - е, ще трябва да инсталираш някой по-малко напудрен linux и да внимаваш в картинката за glibc и други такива неща, за да можеш да преместиш после binary файла

със disable-gcc-checking също може, но за резултата ти трябва и късмет

Пролетта е дяволски далече............
Отговор
в отговор на Яceн #4

Re: иди на сайта на mplayer.....

> а иначе, правилното решение е да си го изкомпилираш с gcc2.95 - е, ще трябва да инсталираш някой по-малко напудрен linux и да внимаваш в картинката за glibc и други такива неща, за да можеш да преместиш после binary файла

Извинявай, Ясене, ама какво значи "по-малко напудрен Linux"? Просто едни дистрибуции са избрали да си останат на нивото от преди осем години и само да си обновяват пакетите, докато други обръщат внимание на разпознаването на хардуера, улесненото конфигуриране и пр. Тях ли наричаш напудрени? За твое сведение, всяка дистрибуция, дори и най-напудрената, позволява инсталиране на tar.gz/bz2 файлове.

После, не виждам защо трябва да внимава за версията на glibc. Не ми е известно gcc да зависи от glibc, докато обратното, без съмнение, е вярно. Ако има някакви изисквания, то те са за версиите на make, autoconf, automake и пр., но тези от RH 7.3 са достатъчно нови.

Компилирал съм gcc 3.01, 3.03, 3.04 и 3.1 с 2.96 без никакви проблеми. Е, понеже исках да се възползвам от оптимизациите, после повторно си компилирах 3.x вече с 3.x. На генерирания код това, естествено, не се отразява; само на скоростта на компилиране.

Когато за пръв път RH се появи с 2.96, наистина беше много бъгав, но още в следващата версия вече беше използваем. Мнозина твърдят, че причината 3.2 да е така изчистен от грешки, се дължи на широката употреба на 2.96 благодарение на RH. Release early, release often, нали знаеш.

Отговор
в отговор на hoopla #5

Re: иди на сайта на mplayer.....

Mislja che Jasen, ima predvid razlichnia nachin po kojto C++ imenata na funckii, promenlivi se dekorirant (mangl-vat) - i sushto nachina po kojto se izwikwat statichnite konstrukturoi, exception handlera i t.n.tk.

2.95, 2.96, 3.01, 3.02 imat razlichno ABI (Application Binary Interface). Ako neshtata sa izcjalo pisana na C - problem njama - ima dvoichna suvmestimost mezhdu biblioteka kompilirana sus 2.95 i sus 3.02 - no sus C++ neshtata ne sa taka - ima razlichno RTTI, Exception handling, name decoration (mangling) i sigurno drugi neshta...

tirulirutatuutuu
Отговор
в отговор на malkia #6

Дайте ъкъл ???

Момци вижда се, че знаете много БРАВО

Но може ли да ми отговорите кокретно на въпроса.

Вярно е че най-добре е да се изкомпилира от source.
Само че да тегля толкова Mb едва ли ще мога.

А Redhat 8.0 го имам на диск. И ако мога да си го инсталирам gcc от там ще е добре.

Отговор
в отговор на malkia #7

Re: иди на сайта на mplayer.....

> Mislja che Jasen, ima predvid razlichnia nachin po kojto C++ imenata na funckii, promenlivi se dekorirant (mangl-vat) - i sushto nachina po kojto se izwikwat statichnite konstrukturoi, exception handlera i t.n.tk.

> 2.95, 2.96, 3.01, 3.02 imat razlichno ABI (Application Binary Interface). Ako neshtata sa izcjalo pisana na C - problem njama - ima dvoichna suvmestimost mezhdu biblioteka kompilirana sus 2.95 i sus 3.02 - no sus C++ neshtata ne sa taka - ima razlichno RTTI, Exception handling, name decoration (mangling) i sigurno drugi neshta...

Така е, да. Но няма проблем да има едновременно няколко различни версии на gcc едновременно, макар и несъвместими помежду си. /usr/bin/gcc и /usr/bin/g++ са само symbolic link-ове. За компилирането на mplayer ще ги направи да сочат към gcc 3.2, а после ще ги върне обратно. Ако не компилира C++ програми, дори няма нужда да ги връща.

Ако следва съвета на Ясен и си копира само binary-то, ще открие, че не може да линкне това, което е компилирал, понеже ще му липсват libgcc, libstdc++ и пр. от 3.2.

Отговор
в отговор на redhatcho #8

Re: Дайте ъкъл ???

> А Redhat 8.0 го имам на диск. И ако мога да си го инсталирам gcc от там ще е добре.

Не ми е ясно защо не си го качил, щом го имаш. Какво ти пречи да пробваш да си качиш поне gcc от него? Ръцете ли да ти държим? Ако има някакви конфликти, той ще ти каже и тогава ще му мислим.

Отговор
в отговор на hoopla #9

"multi-platform" gcc

a kakuv e naj-dobria nachin za suwmestno sushtestwuwane na gcc-ta,

pod Win32 naprimer, imame iop-gcc, koeto e za PS2 Risc3000 procesora (staria PS1), ee-gcc - za PS2 emotion-engine procesora (Risc5000) i si imam otdelno gcc koeto e CYGWIN - to idwa sus GameCube toolovete.

Wsushnost pod moja Red Hat 8.0 - imam i gcc (3.2 20020903) i gcc296 (2.96 20000371) - sigurno ima nachin i druga korenno razlichna versia da se instalira. Samo che kakuw e pravilnia red za da stane tova?

tirulirutatuutuu

Позволих си малко стилистичен дизайн

Редактирано от Masklin на

Отговор
в отговор на redhatcho #10

log sus greshkite? resultata ot makefile-a?

mezhdudrugoto, redhatcho.

Ako mozhesh postni kakvo ti dawa kato log - po wreme na kompilatzia - prosto ne mozhe da se kompilira, ili ne mozhe i da se linkne? instalira?

tirulirutatuutuu
Отговор
в отговор на malkia #11

Re: "multi-platform" gcc

> a kakuv e naj-dobria nachin za suwmestno sushtestwuwane na gcc-ta

Ne sym na Linux v momenta, che sym zamalko tuk, no eto naj-universalniq nachin, kojto si predstavqm i kojto shte stane za vsqka distribuciq:

Svalqsh si edno gcc v tar.gz format, rezarhivirash go, vlizash v direktoriqta mu i pishesh:
./configure --help

Tova shte ti dade vsichki opcii, a tazi, koqto te interesuva e neshto ot sorta na
--with-prefix=DIR
kydeto DIR ti e direktoriqta, v koqto gcc shte se instalira sled
make install

Sled tova pravish ./configure sys syotvetniq prefix, make, make install. Poslednoto go pravish veche kato root, osven ako ne si mu dal da se instalira v tvoq home.

Posle edinstveniqt problem e koe shte se startira. Napr. ako edno gcc e v /usr/bin, a drugo - v /usr/local/bin i /usr/local/bin se namira predi /usr/bin v PATH, shte se startira to. Naj-udobno e da rabotish sys symlinks, napr.

ln -s /usr/local/bin/gcc /opt/gcc-neshto-si

Ako chesto gi prevkljuchvash, mozhesh da si vkarash komandite v script, ili da gi napravish na alias-i, izobshto varianti mnogo.

Отговор
в отговор на hoopla #12

Re: "multi-platform" gcc

da dopylnia:

mojesh da instalirash wsichkite dialekti na gcc na edno i syshto miasto polzwaiki

--program-prefix=foo-

da poluchish foo-gcc, foo-g++ etc.

--program-suffix=-boo

da poluchish gcc-boo, g++-boo etc.

ili ako iskash neshto sywsem shantavo --program-transform-name da definirash script chrez koito da se poluchi imeto na programite :)

ako compilirash cross-compiler, configure po default polzwa definiciata za target kato prefix za imenata na programite.

ako iskash da imash 2 razlichni build-a na edna i syshta versia na gcc za edna i syshta platforma (makar i da ne mi e iasno po kakwa prichina moje da iskash takova neshto :), moje da polzwash
./configure --target=i686-malkia1-linux

i

./configure --target=i686-malkia2-linux

moje bi info-to e malko poweche otkolkoto ti triabwa, no znae li chovek ... :)

Отговор
в отговор на l #13

Re: "multi-platform" gcc

blagodarnosti i na dvamata :)

izglezhda lesna rabota sega!!

tirulirutatuutuu
Отговор