Изграждане на най-новите версии на Vala (направете проверка неуспешна и valac не може да намери споделена библиотека)

Изтеглих последните две най-нови версии на VALA (v0.17.0 и 0.16.0) и се опитах да изградя на моята машина за разработка (Ubuntu 10.0.4 с gcc 4.4.3).

Когато създадох версия 0.17.0, забелязах, че някои грешки мигат на екрана. Пускам make check и make test и двете не успяха (cc грешка).

С v 0.17.0, когато стартирам valac, получих следната грешка:

valac: грешка при зареждане на споделени библиотеки: libvala-0.18.so.0: не може да се отвори споделен обектен файл: Няма такъв файл или директория

Забележете различния номер на версията за споделената библиотека (това грешка ли е?). Във всеки случай претърсих цялата си система, за да видя дали файлът е създаден някъде другаде в моята система. Файлът не е намерен.

След това изтеглих версия 0.16.0 и я създадох. make check и make test също отново се провалиха. Този път обаче, когато стартирах изпълнимия файл valac, получих тази грешка:

valac: грешка при зареждане на споделени библиотеки: libvala-0.16.so.0: не може да се отвори споделен обектен файл: Няма такъв файл или директория

Забележете, че shlib low има правилния номер на версия. Бях обнадежден, след това потърсих моята машина за shlib:

someone@yourbox:~/work/dev/c++/3rdparty/vala/vala-0.16.0$ find . -name 'libvala*' -type f 2>/dev/null
./codegen/libvala-0.16.la
./codegen/.libs/libvala-0.16.lai
./codegen/.libs/libvala-0.16.so.0.0.0
./libvala.pc
./libvala.pc.in
./vapi/libvala-0.16.vapi
./ccode/libvalaccode.la
./ccode/.libs/libvalaccode.a
./libvala-0.16.pc
./vala/.libs/libvalacore.a
./vala/libvalacore.la

Бях на път да създам символна връзка към споделената библиотека и да я поставя в пътя, така че valac да може да я намери - докато не разбрах, че не трябва да правя това (make install вече трябваше да го направи).

Което ме кара да вярвам, че и v 0.17.0 и 0.16.0 са повредени - някой друг знае ли за това - или аз пропускам нещо?

Някой успял ли е да вземе някоя от най-новите версии за компилация - и какво ми трябва, за да поправя компилацията? (ако това не е така, кое е последното известно стабилно издание за vala)?

[[Актуализация]]

Направих регистрационния файл за компилация за 0.17.0 достъпен тук

Резултатът от make check (отново foe v 0.17.0) също е достъпен тук


person Homunculus Reticulli    schedule 09.05.2012    source източник
comment
Не ми е известно някой да е имал подобен проблем и няма начин да разбера какво се е объркало от това, което сте публикували. Моля, публикувайте пълен дневник за изграждане.   -  person nemequ    schedule 10.05.2012
comment
@nemequ: Качих регистрационния файл на компилацията и излязох от стартирането на make check в patebin. Моля, вижте моя актуализиран въпрос за връзките. Благодаря.   -  person Homunculus Reticulli    schedule 11.05.2012


Отговори (3)


make check неуспехът не е свързан. Някои от тестовите случаи зависят от GDBus, който беше добавен към GIO само с версия 2.26 и според http://packages.ubuntu.com/lucid/libglib2.0-0 Ubuntu 10.04 има 2.24.

0.18, който виждате, е версията на API/ABI и е правилна. Малките издания с нечетни номера са нестабилни и носят API/ABI версията на следващото стабилно издание (мислете за изданията 0.17.x като за нестабилни версии за разработка на това, което в крайна сметка ще стане стабилна серия 0.18).

Що се отнася до невъзможността да намерите библиотеката, в зависимост от префикса, който сте инсталирали, вероятно просто трябва да стартирате ldconfig. AFAIK тази стъпка вече не е необходима (някой, който работи с Ubuntu, трябва да потвърди това), но 10.04 беше отдавна...

Ако не сте инсталирали на стандартно местоположение, може да се наложи да коригирате съответно своя LD_LIBRARY_PATH.

person nemequ    schedule 11.05.2012
comment
Благодаря. Успях да разреша проблемите, след като разбрах какво се случва. - person Homunculus Reticulli; 11.05.2012

препратка към: https://help.ubuntu.com/community/Vala

Ако използвате sudo make install неща, можете да получите следното съобщение за грешка, когато издадете първите valac команди

valac: грешка при зареждане на споделени библиотеки: libvala.so.0: не може да се отвори споделен обектен файл: Няма такъв файл или директория

Това означава, че компилаторът не може да намери библиотеките, но те са точно там, където трябва да бъдат, а именно в директорията /usr/local/lib. За да коригирате грешката по време на компилиране, ще изпълните командата sudo ldconfig, за да актуализирате линкерите към динамични библиотеки.

така че можете да изпълните тази команда:

sudo ldconfig /usr/local/lib

за да добавите този път към библиотеката

person xieweijie    schedule 17.02.2014

Получих грешка за:

грешка при зареждане на споделени библиотеки: libvala-0.18.so.0: не може да се отвори споделен обектен файл: Няма такъв файл или директория

ТАКА Направих това и сега работи

sudo apt-get install build-essential flex bison libglib2.0-dev

sudo apt-get install checkinstall devhelp libgtk2.0-dev

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

person jay jay    schedule 03.02.2013