Речник

Тук е обяснено как се инсталират и настройват програми под Linux.

Модератори: Freya, Kulu Ngile

Мнениеот phantomlord » Пон 08, Сеп, 2008 13:56

Edit: Сетих се да питам - проблем ли е, че имам две версии на GCC?

По принцип не е проблем. Може да се случи да ти се наложи да компилираш модул към ядрото с едната версия, но ядрото да е компилирано с другата, тогава няма да може да се зареди. Оправя се проблема като промениш символичната връзка /usr/bin/gcc към коя версия да сочи и наново компилираш модула.
Пример:
Код за потвърждение: Избери целия код
mv /usr/bin/gcc /usr/bin/gcc.old
ln -sv /usr/bin/gcc-4.0 /usr/bin/gcc
Hear the cry of War
Louder than before
With his sword in hand
to control the land
Crushing metal strikes
on this frightening night
Fall onto your knees
For the Phantom Lord
Аватар
phantomlord
Шеф
 
Мнения: 1517
Регистриран на: Пет 03, Мар, 2006 1:16
Местоположение: София

Мнениеот Jork » Пон 08, Сеп, 2008 20:39

Kulu Ngile написа:Разгледах и горният пример (example.c)... имам едно CentOS, на което проверих проблема с компилирането...

Kulu,
ето какво ми дава като резултат компилирането на дадения от теб пример:
Код за потвърждение: Избери целия код
The current path is: /usr/lib/qt-3.3/bin:/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/home/ivaylo/bin

Има някои различия като го сравнявам с твоя, но не знам това какво значи. :(

phantomlord,
в /usr/bin/ имам gcc и gcc34 никъде не видях gcc-4.0. Все ми се струва, че съм оплескал нещо с това gcc, ама като не разбирам не знам какво да направя.

Съжалявам, че ви занимавам с моите глупости, но няма кого другиго да тормозя. :oops:
Благодаря още веднъж!

Edit: Сега се опитах да инсталирам gbgoffice. Ми и той не ще. Казва ми, че му липсвало някакво gtkmm. Като се опитам да инсталирам въпросния gtkmm системата ми казва, че вече го имам инсталирам. Въобще тая вечер голям невървеж. :( Я по-добре да ида да пиина една бира пък компютрите ще ги оставя за по-късно.
П.С. За помогналите обещавам бира при първа възможност. *beer* :)
Аватар
Jork
Участник
 
Мнения: 54
Регистриран на: Чет 18, Окт, 2007 17:48
Местоположение: София/Монтана

Мнениеот Kulu Ngile » Пон 08, Сеп, 2008 21:38

За да компилирате gbgoffice трябва да имате c++ компилатор (gcc) и инсталирани libsigc++2, gtkmm-2.4 и glibmm-2.4.

Та, какво ти дава:
1. rpm -qa | grep gtkmm
2. rpm -qa | grep glibmm
3. rpm -qa | grep gcc
4. rpm -qa | grep libsigc++

Покажи и изхода от ./configure :)
Ако съдбата е срещу теб, толкова по-зле за нея.

Изображение
APT HOWTO
Kulu Ngile
Унуфри
 
Мнения: 1233
Регистриран на: Съб 04, Мар, 2006 1:04
Местоположение: София

Мнениеот Jork » Пон 08, Сеп, 2008 22:01

1. rpm -qa | grep gtkmm :
Код за потвърждение: Избери целия код
gtkmm24-2.12.7-1.fc9.i386

2. rpm -qa | grep glibmm :
Код за потвърждение: Избери целия код
glibmm24-2.16.2-1.fc9.i386

3. rpm -qa | grep gcc :
Код за потвърждение: Избери целия код
gcc-4.3.0-8.i386
compat-gcc-34-3.4.6-9.i386
gcc-objc-4.3.0-8.i386
libgcc-4.3.0-8.i386
gcc-c++-4.3.0-8.i386
compat-gcc-34-c++-3.4.6-9.i386

4. rpm -qa | grep libsigc++ :
Код за потвърждение: Избери целия код
libsigc++20-2.2.2-1.fc9.i386

5.
Код за потвърждение: Избери целия код
[ivaylo@localhost gbgoffice-1.4]$ ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for style of include used by make... GNU
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking dependency style of gcc... gcc3
checking for library containing strerror... none required
checking for gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ANSI C... (cached) none needed
checking dependency style of gcc... (cached) gcc3
checking for gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ANSI C... (cached) none needed
checking dependency style of gcc... (cached) gcc3
checking how to run the C preprocessor... gcc -E
checking for egrep... grep -E
checking for ANSI C header files... yes
checking how to run the C preprocessor... gcc -E
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
checking how to run the C++ preprocessor... g++ -E
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking getopt.h usability... yes
checking getopt.h presence... yes
checking for getopt.h... yes
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for GTKMM... configure: error: Package requirements (gtkmm-2.4 >= 2.4.0) were not met:

No package 'gtkmm-2.4' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables GTKMM_CFLAGS
and GTKMM_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.


Ето ги нещата. :)
*help* (много яки емотикнчета има тоя форум)
Аватар
Jork
Участник
 
Мнения: 54
Регистриран на: Чет 18, Окт, 2007 17:48
Местоположение: София/Монтана

Мнениеот phantomlord » Вто 09, Сеп, 2008 0:10

Не мисля, че си оплескал нещо с gcc, а и имаш само една версия.
Код за потвърждение: Избери целия код
ls /usr/bin/gcc*

ще ти даде резултат какво имаш като gcc.
Код за потвърждение: Избери целия код
ls -la /usr/bin/gcc

ще ти покаже към коя версия на gcc ти сочи символичната връзка.

Jork, м/у другото с кое дистро си? Защото gbgoffice е в официалните хранилища на тестовия Дебиан.

Съжалявам, че ви занимавам с моите глупости, но няма кого другиго да тормозя.

Ти за какво си мислиш, че е форума? Don't worry, be happy!!! *dance*
Последна промяна phantomlord на Вто 09, Сеп, 2008 3:07, променена общо 1 път
Hear the cry of War
Louder than before
With his sword in hand
to control the land
Crushing metal strikes
on this frightening night
Fall onto your knees
For the Phantom Lord
Аватар
phantomlord
Шеф
 
Мнения: 1517
Регистриран на: Пет 03, Мар, 2006 1:16
Местоположение: София

Мнениеот Kulu Ngile » Вто 09, Сеп, 2008 1:48

checking for GTKMM... configure: error: Package requirements (gtkmm-2.4 >= 2.4.0) were not met:

No package 'gtkmm-2.4' found


Интересното е, че версията на gtkmm е в странен формат при теб и поради това ./configure пропада. Не знам как точно са пакетите във федора, но в дебиан са така:
Код за потвърждение: Избери целия код
[root: gaara]# -check gtkmm
libgtkmm-2.4-1c2a            install
libgtkmm-2.4-dev            install
[root: gaara]#


Пробвай да инсталираш dev (devel май се води при теб) пакета на gtkmm. Утре ще прегледам Makefile-a за да мога да бъда малко по-точен, а ти покажи изхода от yum search gtkmm и yum provides gtkmm.
Ако съдбата е срещу теб, толкова по-зле за нея.

Изображение
APT HOWTO
Kulu Ngile
Унуфри
 
Мнения: 1233
Регистриран на: Съб 04, Мар, 2006 1:04
Местоположение: София

Мнениеот Jork » Вто 09, Сеп, 2008 7:40

phantomlord написа:Jork, м/у другото с кое дистро си? Защото gbgoffice е в официалните хранилища на тестовия Дебиан.

С Fedora Core 9 съм. :)
Довечера, като се прибера, ще пробвам нещата, които сте дали и ще покажа резултатите от тях.

Ти за какво си мислиш, че е форума? Don't worry, be happy!!! *dance*

Благодаря, :mrgreen: !

Edit:
Тъй, вече пред домашното ПЦ реших да пробвам съветите дадени ми по-горе. :)
И така, първо да започна с това, че вчера изпълних командите дадени като пример от phantomlord в по-предния му пост, а именно:
Код за потвърждение: Избери целия код
mv /usr/bin/gcc /usr/bin/gcc.old
ln -sv /usr/bin/gcc-4.0 /usr/bin/gcc

Преди да го направя съответно проверих кои версии на gcc имам - резултата беше gcc и gcc34. Тъй като прочетох, че Федора 9 идва с версия 4.х, а си спомням, че аз инсталирах 3.4 реших нея да я направя .old. А връзката насочих към версията, която беше само gcc. По-този начин, аз си мисля, че Федората ще използва gcc, а gcc34 ще си стой някъде там и ще чака своя шанс. /това последното са си само мой разсъждения, които може и да нямат нищо общо с действителността :mrgreen: /
Да премина вече към днешните ми действия. Първо изпълних командите посочени от phantomlord:
Код за потвърждение: Избери целия код
[ivaylo@localhost ~]$ ls /usr/bin/gcc*
/usr/bin/gcc  /usr/bin/gcc34.old  /usr/bin/gccmakedep
[ivaylo@localhost ~]$ ls -la /usr/bin/gcc
-rwxr-xr-x 2 root root 219144 2008-04-28 21:37 /usr/bin/gcc

След това последвах съвета на Kulu Ngile и инсталирах дев пакета на gtkmm. Резултата от това е, че като опитам да инсталирам gbgoffice инсталацията минава ./configure, но пропада при make със следната грешка:
Код за потвърждение: Избери целия код
translator_manager.cpp:314: error: ‘strlen’ was not declared in this scope
make[2]: *** [translator_manager.o] Error 1
make[2]: Leaving directory `/home/ivaylo/Download/gbgoffice-1.4/src'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/ivaylo/Download/gbgoffice-1.4/src'
make: *** [all-recursive] Error 1

Между другото опитах и с kbgoffice и резултата е същия. Е, с друга грешка де:
Код за потвърждение: Избери целия код
main.cpp:64: error: ‘getenv’ was not declared in this scope
make[1]: *** [main.o] Error 1
make[1]: Leaving directory `/home/ivaylo/Download/kbgoffice-1.8/src'
make: *** [all-recursive] Error 1

А, забравих да кажа какво ми дава yum search gtkmm:
Код за потвърждение: Избери целия код
...
bitgtkmm.i386 : The bitgtkmm library provides gtkmm widgets for the bit library
bitgtkmm-devel.i386 : Headers for developing programs that will use bitgtkmm
...
gtkmm24.i386 : C++ interface for GTK2 (a GUI library for X)
gtkmm24-devel.i386 : Headers for developing programs that will use gtkmm24.
gtkmm24-docs.i386 : Documentation for gtkmm24, includes full API docs
...

Тъй като резултатите са доста реших да покажа само тези, които съдържат в името си gtkmm. А yum provides gtkmm не дава много ясни резултати, май:
Код за потвърждение: Избери целия код
[ivaylo@localhost ~]$ yum provides gtkmm
Loaded plugins: refresh-packagekit
Warning: 3.0.x versions of yum would erronously match against filenames.
 You can use "*/gtkmm" and/or "*bin/gtkmm" to get that behaviour
No Matches found

Ако се сетите още нещо - отворен съм към нови идеи. :mrgreen:
Ако ли пък не, май ще преинсталирам. *secret*

П.С. Чак сега забелязах, че под ника на Kulu Ngile пише Унуфри. А аз се чудех защо yog му вика така. :D Викам си Kulu да не вземе да се обиди, а то каква била работата.
Аватар
Jork
Участник
 
Мнения: 54
Регистриран на: Чет 18, Окт, 2007 17:48
Местоположение: София/Монтана

Мнениеот Kulu Ngile » Вто 09, Сеп, 2008 20:49

Можеш ли да дадеш изхода от ./configure?
Ако съдбата е срещу теб, толкова по-зле за нея.

Изображение
APT HOWTO
Kulu Ngile
Унуфри
 
Мнения: 1233
Регистриран на: Съб 04, Мар, 2006 1:04
Местоположение: София

Мнениеот Jork » Вто 09, Сеп, 2008 21:12

От ./configure на gbgoffice ли? Ако това имаш предвид ето го:
Код за потвърждение: Избери целия код
[ivaylo@localhost gbgoffice-1.4]$ ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for style of include used by make... GNU
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking dependency style of gcc... gcc3
checking for library containing strerror... none required
checking for gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ANSI C... (cached) none needed
checking dependency style of gcc... (cached) gcc3
checking for gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ANSI C... (cached) none needed
checking dependency style of gcc... (cached) gcc3
checking how to run the C preprocessor... gcc -E
checking for egrep... grep -E
checking for ANSI C header files... yes
checking how to run the C preprocessor... gcc -E
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
checking how to run the C++ preprocessor... g++ -E
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking getopt.h usability... yes
checking getopt.h presence... yes
checking for getopt.h... yes
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for GTKMM... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating pixmaps/Makefile
config.status: creating src/config.h
config.status: src/config.h is unchanged
config.status: executing depfiles commands
Аватар
Jork
Участник
 
Мнения: 54
Регистриран на: Чет 18, Окт, 2007 17:48
Местоположение: София/Монтана

Мнениеот phantomlord » Вто 09, Сеп, 2008 22:29

Jork, съвсем не си ме разбрал... /usr/bin/gcc е само символична връзка към gcc. В твоя случай в момента тя сочи наникъде... Преди да пишеш последното си съобщение /usr/bin/gcc е сочило към версия 3.4 на gcc, а версия 4.0 изобщо не си имал... Оправи си /usr/bin/gcc да сочи към gcc-3.4, иначе пеоблеми те очакват...

Ето при мен как стоят нещата:
Код за потвърждение: Избери целия код
~$ ls /usr/bin/gcc*
/usr/bin/gcc      /usr/bin/gcc-4.3     /usr/bin/gccmakedep
/usr/bin/gcc-4.1  /usr/bin/gccbug-4.1

~$ ls -la /usr/bin/gcc
lrwxrwxrwx 1 root root 7 10 авг  2,26 /usr/bin/gcc -> gcc-4.3
Hear the cry of War
Louder than before
With his sword in hand
to control the land
Crushing metal strikes
on this frightening night
Fall onto your knees
For the Phantom Lord
Аватар
phantomlord
Шеф
 
Мнения: 1517
Регистриран на: Пет 03, Мар, 2006 1:16
Местоположение: София

Мнениеот Kulu Ngile » Вто 09, Сеп, 2008 22:41

Код за потвърждение: Избери целия код
error: ‘strlen’ was not declared in this scope

Това е проблем на компилатора (gcc)... за да разбереш с коя версия си в момента, то просто изпълни gcc -v

При мен хавата е следната:
Код за потвърждение: Избери целия код
[gaara: ~]$ gcc -v
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.3.1-9' --with-bugurl=file:///usr/share/doc/gcc-4.3/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --with-gxx-include-dir=/usr/include/c++/4.3 --program-suffix=-4.3 --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-mpfr --enable-targets=all --enable-cld --enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu
Thread model: posix
gcc version 4.3.1 (Debian 4.3.1-9)
[gaara: ~]$


След като си оправиш правиланата версия, т.е. да сочи към съществуваш gcc, то мисля, че няма да имаш проблем с make-а :)
Ако съдбата е срещу теб, толкова по-зле за нея.

Изображение
APT HOWTO
Kulu Ngile
Унуфри
 
Мнения: 1233
Регистриран на: Съб 04, Мар, 2006 1:04
Местоположение: София

Мнениеот Jork » Сря 10, Сеп, 2008 0:05

Момчета, оплесках я!
Та да кажа какво направих. Първо взех, че изтрих версия 3.4 на гцц-то. После премахнах и компилаторите на гцц 4.3 и ги инсталирах на ново. След това проверих накъде сочи символичната връзка за гцц. И се оказа, че не сочи никъде. Естествено се опитах да я насоча къв версията, която ми показа gcc -v. Сега връзката уж сочи gcc-4.3.0, ама май не сочи нищо. В резултат на това сега като дам gcc -v ми вика команд нот фаунд. А и в /usr/bin/gcc май нямам много неща. За да не съм голословен ето някои неща.
Код за потвърждение: Избери целия код
 ls /usr/bin/gcc*
/usr/bin/gcc  /usr/bin/gccmakedep  /usr/bin/gcc.old


Код за потвърждение: Избери целия код
ls -la /usr/bin/gcc
lrwxrwxrwx 1 root root 18 2008-09-10 00:38 /usr/bin/gcc -> /usr/bin/gcc-4.3.0


Код за потвърждение: Избери целия код
 gcc -v
bash: gcc: command not found

След тези интервенции от моя страна, сега като дам ./configure се получава:
Код за потвърждение: Избери целия код
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for style of include used by make... GNU
checking for gcc... no
checking for cc... no
checking for cc... no
checking for cl... no
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details.

Направо се вкарах в ебати приключенията. :(

П.С. Някои да знае команда за гасене на компютъра от терминал? :)
Аватар
Jork
Участник
 
Мнения: 54
Регистриран на: Чет 18, Окт, 2007 17:48
Местоположение: София/Монтана

Мнениеот phantomlord » Сря 10, Сеп, 2008 0:10

Погледни пак как стоят при мен нещата и обърни внимание на червеното. После помисли малко:

~$ ls /usr/bin/gcc*
/usr/bin/gcc /usr/bin/gcc-4.3 /usr/bin/gccmakedep
/usr/bin/gcc-4.1 /usr/bin/gccbug-4.1

~$ ls -la /usr/bin/gcc
lrwxrwxrwx 1 root root 7 10 авг 2,26 /usr/bin/gcc -> gcc-4.3
Hear the cry of War
Louder than before
With his sword in hand
to control the land
Crushing metal strikes
on this frightening night
Fall onto your knees
For the Phantom Lord
Аватар
phantomlord
Шеф
 
Мнения: 1517
Регистриран на: Пет 03, Мар, 2006 1:16
Местоположение: София

Мнениеот Jork » Сря 10, Сеп, 2008 0:23

Абе аз виждам, но след:

sudo mv /usr/bin/gcc /usr/bin/gcc.old
sudo ln -sv /usr/bin/gcc-4.3 /usr/bin/gcc
`/usr/bin/gcc' -> `/usr/bin/gcc-4.3'

Другите неща изглеждат по този начин:
ls /usr/bin/gcc*
/usr/bin/gcc /usr/bin/gccmakedep /usr/bin/gcc.old
ls -la /usr/bin/gcc
lrwxrwxrwx 1 root root 16 2008-09-10 01:18 /usr/bin/gcc -> /usr/bin/gcc-4.3

Ясно е, че бъркам някъде, но все още познанията не ми достигат да определя къде.
Аватар
Jork
Участник
 
Мнения: 54
Регистриран на: Чет 18, Окт, 2007 17:48
Местоположение: София/Монтана

Мнениеот phantomlord » Сря 10, Сеп, 2008 1:41

:)
Хубаво си направил връзка към /usr/bin/gcc-4.3, но файл gcc-4.3 в /usr/bin/ нямаш. Т.е. връзката води до нищото.
Hear the cry of War
Louder than before
With his sword in hand
to control the land
Crushing metal strikes
on this frightening night
Fall onto your knees
For the Phantom Lord
Аватар
phantomlord
Шеф
 
Мнения: 1517
Регистриран на: Пет 03, Мар, 2006 1:16
Местоположение: София

ПредишнаСледваща

Назад към Инсталиране и работа с приложения

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 2 госта

cron