[Comm] ЦЕРНовская графика ROOT, Desktop 4.0 и экскурсия в Ubuntu 7.10
Pavlov Konstantin
=?iso-8859-1?q?thresh_=CE=C1_altlinux=2Eru?=
Вт Мар 25 22:34:02 MSK 2008
On Tue, Mar 25, 2008 at 10:30:18PM +0300, panov на dec1.sinp.msu.ru wrote:
> Здравствуйте всем!
>
> Я много лет пользовался Альтлинуксом
> вместе с пакетом
> научной ЦЕРНовской графики ROOT
> (http://root.cern.ch), но начиная с
> Desktop 4.0 пакет ROOT перестал компилиться. Я
> сначала думал, что дело
> в версии компилятора (т.е. gcc-4.1), так как
> официально ROOT
> поддерживает только до gcc-3.4. Но потом в
> сети нашел
> откомпилированную gcc-4.1 версию
> (ftp://root.cern.ch/root/root_v5.12.00.linux-gcc-4.1.tar.gz). Дальше
> я
> установил у себя линукс Ubuntu-7.10, где тоже
> основной компилятор
> gcc-4.1, и проверил сам - ROOT компилится с gcc-4.1
> без проблем!
> Значит, проблема в реализации
> компилятора Альтлинукса.
>
> Я уж подумал было, буду работать в Ubuntu. Но
> там оказалась очень
> кривая русификация; emacs, без которого
> жить не могу, тоже совсем
> кривой. Надо разбираться с Альтлинуксом,
> иначе жизни нет.
>
> Вот что происходит при компиляции ROOT'a в
> Desktop 4.0 (это для
> версии ROOT 5.18). Первая ошибка такая:
>
> cint/src/g__cfunc.c:50: ошибка: expected declaration specifiers or
> '...' before numeric constant
> cint/src/g__cfunc.c:50: ошибка: expected ')' before '!=' token
> cint/src/g__cfunc.c:50: ошибка: expected ')' before '?' token
>
> Соответствющий фрагмент кода из файла
> g__cfunc.c такой:
>
> 48 #if defined(G__ANSI) || defined(G__ANSIHEADER)
> 49 int memcmp(const void *region1,const void *region2,size_t count);
> 50 void* memcpy(void *region1,const void *region2,size_t n);
> 51 #elif defined(_AIX)
>
> Здесь все ясно. В gcc-4.1 Альтлинукса
> определен лишний макрос
> 'memcpy', который пытается раскрыться где не
> надо. Вставляю перед
> этим фрагментом строчку:
>
> #undef memcpy // ERROR CORRECTION
>
> и компиляция продолжается дальше. До
> следующего сообщения об ошибке:
>
> g++ -m32 -O2 -o bin/cint cint/main/cppmain.o \
> -Llib -lCint -lm -ldl -rdynamic
> lib/libCint.so: undefined reference to `dlsym'
> lib/libCint.so: undefined reference to `dlerror'
> lib/libCint.so: undefined reference to `dlopen'
> lib/libCint.so: undefined reference to `dlclose'
> collect2: выполнение ld завершилось с кодом
> возврата 1
>
> Это уже хуже. Не извелекаются функции из
> библиотеки libltdl, хотя
> сама библиотека присутствует в /usr/lib
> (файлы libltdl.a,
> libltdl.so, libltdl.so.3, libltdl.so.3.1.4)
lib/libCint.so собралась неправильно -- нужно чтобы она была слинкована с
libdl.
Видимо в ее строчке линковки не хватает -ldl.
--
> Как можно определить использует ли провайдер transparent proxy или
> нет?
Очень просто.
Только нужно понимать, как работает transparent proxy...
-- at in community@
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип : application/pgp-signature
Размер : 189 байтов
Описание: Digital signature
Url : <http://lists.altlinux.org/pipermail/community/attachments/20080325/997f5e87/attachment-0002.bin>
Подробная информация о списке рассылки community