Я пытаюсь собрать cint из источников на Ubuntu 12.04. Однако он жалуется на libreadline
:
~/Desktop/cint-5.18.00 » ./configure
Guessing architecture to be linuxx8664gcc
Using current CINT core
Please install the package "libreadline or [lib]readline-dev[el]"!
У меня установлены libreadline6
, libreadline-dev
и libreadline6-dev
. Что мне делать?
Используя опцию --readlinelib
ниже, я могу запустить configure
, make
и make install
:
/usr/local/include/cint
/usr/local/include/cint/cintdictversion.h
/usr/local/include/cint/configcint.h
/usr/local/share/cint
/usr/local/share/cint/cint
/usr/local/share/cint/cint/lib/qt/qtcint.h
/usr/local/share/cint/cint/lib/wintcldl83/cintlib.c
/usr/local/share/cint/cint/lib/socket/cintsock.h
/usr/local/share/cint/cint/lib/socket/cintsock.c
/usr/local/share/cint/cint/lib/dll_stl/cinteh.h
/usr/local/share/cint/cint/lib/win32api/cintwin.h
/usr/local/share/cint/cint/lib/gl/cintGL.h
/usr/local/share/cint/cint/lib/cintocx
/usr/local/share/cint/cint/lib/cintocx/cintocx.aps
/usr/local/share/cint/cint/lib/cintocx/cintocx.h
/usr/local/share/cint/cint/lib/cintocx/cintocx.cpp
/usr/local/share/cint/cint/lib/cintocx/cintocx.ico
/usr/local/share/cint/cint/lib/cintocx/CintocxCtl.cpp
/usr/local/share/cint/cint/lib/cintocx/CintocxCtl.bmp
/usr/local/share/cint/cint/lib/cintocx/cintocx3.bmp
/usr/local/share/cint/cint/lib/cintocx/cintocx.clw
/usr/local/share/cint/cint/lib/cintocx/CintocxCtl.h
/usr/local/share/cint/cint/lib/cintocx/CintocxPpg.h
/usr/local/share/cint/cint/lib/cintocx/cintocx.mdp
/usr/local/share/cint/cint/lib/cintocx/cintocx.odl
/usr/local/share/cint/cint/lib/cintocx/CintocxPpg.cpp
/usr/local/share/cint/cint/lib/cintocx/cintocx.mak
/usr/local/share/cint/cint/lib/cintocx/Cint-Ocx
/usr/local/share/cint/cint/lib/cintocx/cintocx.rc
/usr/local/share/man/man1/makecint.1
/usr/local/share/man/man1/cint.1
/usr/local/lib/libCint.so
/usr/local/lib/libCint_static.a
/usr/local/lib/clang/3.5/include/f16cintrin.h
/usr/local/bin/cint
/usr/local/bin/cint-config
/usr/local/bin/makecint
Но когда я пытаюсь запустить его, я получаю:
~/Desktop/cint-5.18.00 » cint
cint: error while loading shared libraries: libCint.so: cannot open shared object file: No such file or directory
Спасибо
Поиск разделяемой библиотеки с использованием:
locate libreadline.so
Затем запустите configure с опцией --readlinelib
:
./configure --readlinelib=/lib/x86_64-linux-gnu/libreadline.so.6 --prefix=/usr/local
make
sudo make install
Если cint не может найти общую библиотеку libCint.so
.
sudo ln /usr/local/lib/libCint.so /usr/lib/libCint.so
или вы можете добавить /usr/local/lib
к пути загрузки ld:
sudo echo "/usr/local/lib" >> /etc/ld.so.conf.d/usr-local.conf
sudo ldconfig
Но учтите, что это не рекомендуется, локально установленные библиотеки могут конфликтовать с установленными библиотеками Distribution. Так что делайте ссылки, если у вас возникают такие проблемы.
Если это не сработало. Существует несколько версий библиотеки readline. посмотрим, работают ли они.
Если у вас установлена 64-битная ОС:
sudo apt-get install lib64readline6-dev:i386
Я проверил, и она работает. В противном случае проверьте другой из 32-битных:
sudo apt-get install lib32readline6-dev
Как установить cint на 64-битную версию Ubuntu 12.10. Вот как я это сделал:
Создайте новый каталог /home/el/foo
Перейдите в каталог и оформите последнюю версию и great:
svn co http://root.cern.ch/svn/root/branches/v5-34-00-patches/cint cint
cd cint
sudo apt-get install libreadline-dev
./configure --readlinelib=/lib/x86_64-linux-gnu/libreadline.so.6.2 --prefix=/usr/local
make
sudo make install
sudo ln /usr/local/lib/libCint.so /usr/lib/libCint.so
Затем запустите его:
el@apollo:~/foo/cint$ cint
cint : C/C++ interpreter (mailing list 'root-cint@cern.ch')
Copyright(c) : 1995~2010 Masaharu Goto (gotom@hanno.jp)
revision : 5.18.00, July 2, 2010 by M.Goto
No main() function found in given source file. Interactive interface started.
'h':help, 'q':quit, '{statements;}' or 'p [expr]' to evaluate
cint> sin(1.2);
(const double)1.19999999999999996e+00
На главном сайте есть учебники.
cint> printf("ok");
(const char* 0x16bef60)"ok"