gnatbind: Не удается найти: s-stalib.ali

Я установил GNAT на свой компьютер с OS X 10.8.5, выполнив следующие действия:

  • Загрузите GNAT GPL с http://libre.adacore.com/download/configurations.
  • Установить с помощью ./doinstall, принимая все параметры по умолчанию.
  • Добавлено /usr/local/gnat/bin в $PATH

После попытки скомпилировать простой пример hello world я получаю эту ошибку:

$ gnat make hello
gcc -c hello.adb
gnatbind -x hello.ali
gnatbind: Cannot find: s-stalib.ali
gnatmake: *** bind failed.

Любая идея, почему это может произойти?

PS: gnat make -a hello работает, но создает кучу файлов и, насколько я знаю, не требуется.

Изменить: В соответствии с запросом, вот результат gnatls -v

GNATLS GPL 2013 (20130314)
Copyright (C) 1997-2013, Free Software Foundation, Inc.

Source Search Path:
   <Current_Directory>
   /usr/local/gnat/lib/gcc/x86_64-apple-darwin12.2.0/4.7.4/adainclude/


Object Search Path:
   <Current_Directory>
   /usr/local/gnat/lib/gcc/x86_64-apple-darwin12.2.0/4.7.4/adalib/


Project Search Path:
   <Current_Directory>
   /usr/local/gnat/x86_64-apple-darwin12.2.0/lib/gnat
   /usr/local/gnat/share/gpr
   /usr/local/gnat/lib/gnat

Вот выдержка из вывода ls -l /usr/local/gnat/lib/gcc/x86_64-apple-darwin12.2.0/4.7.4/adalib/:

total 39224
-rw-rwxr--@ 1 padde  admin     4483 17 Apr  2013 Makefile.adalib
-rw-rwxr--@ 1 padde  admin     1450  3 Jun 18:00 a-assert.ali

...

-rw-rwxr--@ 1 padde  admin     3178  3 Jun 18:01 s-rpc.ali
-rw-rwxr--@ 1 padde  admin     3778  3 Jun 18:01 s-scaval.ali
-rw-rwxr--@ 1 padde  admin     4908  3 Jun 18:01 s-sequio.ali
-rw-rwxr--@ 1 padde  admin    10542  3 Jun 18:01 s-shasto.ali
-rw-rwxr--@ 1 padde  admin     6382  3 Jun 18:01 s-solita.ali
-rw-rwxr--@ 1 padde  admin     8265  3 Jun 18:01 s-stausa.ali
-rw-rwxr--@ 1 padde  admin     4919  3 Jun 18:01 s-stchop.ali
-rw-rwxr--@ 1 padde  admin    14601  3 Jun 18:01 s-stratt.ali
-rw-rwxr--@ 1 padde  admin    11024  3 Jun 18:01 s-ststop.ali
-rw-rwxr--@ 1 padde  admin     5320  3 Jun 18:01 s-stusta.ali
-rw-rwxr--@ 1 padde  admin     9804  3 Jun 18:01 s-taasde.ali
-rw-rwxr--@ 1 padde  admin     4346  3 Jun 18:01 s-tadeca.ali
-rw-rwxr--@ 1 padde  admin     4234  3 Jun 18:01 s-tadert.ali
-rw-rwxr--@ 1 padde  admin    12564  3 Jun 18:01 s-taenca.ali
-rw-rwxr--@ 1 padde  admin     6663  3 Jun 18:01 s-taprob.ali
-rw-rwxr--@ 1 padde  admin    29033  3 Jun 18:01 s-taprop.ali
-rw-rwxr--@ 1 padde  admin    13719  3 Jun 18:01 s-tarest.ali
-rw-rwxr--@ 1 padde  admin     8863  3 Jun 18:01 s-tasdeb.ali
-rw-rwxr--@ 1 padde  admin      747  3 Jun 18:01 s-tasinf.ali
-rw-rwxr--@ 1 padde  admin    13008  3 Jun 18:01 s-tasini.ali
-rw-rwxr--@ 1 padde  admin    15237  3 Jun 18:01 s-taskin.ali
-rw-rwxr--@ 1 padde  admin     1259  3 Jun 18:01 s-tasloc.ali
-rw-rwxr--@ 1 padde  admin     1710  3 Jun 18:01 s-taspri.ali
-rw-rwxr--@ 1 padde  admin    11652  3 Jun 18:01 s-tasque.ali
-rw-rwxr--@ 1 padde  admin    29450  3 Jun 18:01 s-tasren.ali
-rw-rwxr--@ 1 padde  admin     1500  3 Jun 18:01 s-tasres.ali
-rw-rwxr--@ 1 padde  admin    31332  3 Jun 18:01 s-tassta.ali
-rw-rwxr--@ 1 padde  admin    11059  3 Jun 18:01 s-tasuti.ali
-rw-rwxr--@ 1 padde  admin     7120  3 Jun 18:01 s-tataat.ali
-rw-rwxr--@ 1 padde  admin     2942  3 Jun 18:01 s-tpinop.ali
-rw-rwxr--@ 1 padde  admin    11318  3 Jun 18:01 s-tpoben.ali
-rw-rwxr--@ 1 padde  admin    19570  3 Jun 18:01 s-tpobop.ali
-rw-rwxr--@ 1 padde  admin    11075  3 Jun 18:01 s-tposen.ali
-rw-rwxr--@ 1 padde  admin     1421  3 Jun 18:01 s-traces.ali
-rw-rwxr--@ 1 padde  admin     3889  3 Jun 18:01 s-tratas.ali
-rw-rwxr--@ 1 padde  admin    17789  3 Jun 18:01 s-utf_32.ali
-rw-rwxr--@ 1 padde  admin     8312  3 Jun 18:01 s-vaflop.ali
-rw-rwxr--@ 1 padde  admin      997  3 Jun 18:01 s-valboo.ali
-rw-rwxr--@ 1 padde  admin     1239  3 Jun 18:01 s-valcha.ali
-rw-rwxr--@ 1 padde  admin     1309  3 Jun 18:01 s-valdec.ali
-rw-rwxr--@ 1 padde  admin     2921  3 Jun 18:01 s-valenu.ali
-rw-rwxr--@ 1 padde  admin     1733  3 Jun 18:01 s-valint.ali
-rw-rwxr--@ 1 padde  admin     1345  3 Jun 18:01 s-vallld.ali
-rw-rwxr--@ 1 padde  admin     1807  3 Jun 18:01 s-vallli.ali
-rw-rwxr--@ 1 padde  admin     3841  3 Jun 18:01 s-valrea.ali
-rw-rwxr--@ 1 padde  admin     3078  3 Jun 18:01 s-valuns.ali
-rw-rwxr--@ 1 padde  admin     2863  3 Jun 18:01 s-valwch.ali
-rw-rwxr--@ 1 padde  admin     2157  3 Jun 18:01 s-veboop.ali
-rw-rwxr--@ 1 padde  admin      535  3 Jun 18:01 s-vector.ali
-rw-rwxr--@ 1 padde  admin     1153  3 Jun 18:01 s-vercon.ali
-rw-rwxr--@ 1 padde  admin     3305  3 Jun 18:01 s-vmexta.ali
-rw-rwxr--@ 1 padde  admin     2474  3 Jun 18:01 s-wchwts.ali
-rw-rwxr--@ 1 padde  admin      698  3 Jun 18:01 s-widboo.ali
-rw-rwxr--@ 1 padde  admin      939  3 Jun 18:01 s-widcha.ali
-rw-rwxr--@ 1 padde  admin     2526  3 Jun 18:01 s-widenu.ali
-rw-rwxr--@ 1 padde  admin      863  3 Jun 18:01 s-widlli.ali
-rw-rwxr--@ 1 padde  admin     1126  3 Jun 18:01 s-widllu.ali
-rw-rwxr--@ 1 padde  admin     1292  3 Jun 18:01 s-widwch.ali
-rw-rwxr--@ 1 padde  admin     1301  3 Jun 18:01 s-wwdcha.ali
-rw-rwxr--@ 1 padde  admin     5682  3 Jun 18:01 s-wwdenu.ali
-rw-rwxr--@ 1 padde  admin     1957  3 Jun 18:01 s-wwdwch.ali
-rw-rwxr--@ 1 padde  admin     1561  3 Jun 18:01 sequenio.ali
-rw-rwxr--@ 1 padde  admin     1519  3 Jun 18:01 text_io.ali
-rw-rwxr--@ 1 padde  admin      391  3 Jun 18:01 unchconv.ali
-rw-rwxr--@ 1 padde  admin      389  3 Jun 18:01 unchdeal.ali

Интересно, что запрошенный файл s-stalib.ali не содержится в этом каталоге.


person Patrick Oscity    schedule 25.10.2013    source источник


Ответы (1)


Если вы говорите gnatls -v (или gnat list -v), он перечисляет (среди прочего) путь поиска объекта: здесь,

...
Object Search Path:
   <Current_Directory>
   /opt/gnat-gpl-2013/lib/gcc/x86_64-apple-darwin12.2.0/4.7.4/adalib/
...

Что говорит твой? это правильно? если файлы есть, они читаемы?

[Позже]

Итак, у вас есть 9 файлов s-s*.ali с защитой -rw-rwxr--@ (не знаю, что означает @!), а у меня 19 с защитой -r--r--r--@. Похоже, установка по какой-то причине не завершилась.

Когда я устанавливаю GNAT, я использую sudo: sudo ./doinstall. Может в этом разница?

В README сказано, что doinstall оставляет install.log в текущем каталоге (я полагаю, с дистрибутивом); это может дать некоторые подсказки.

Если вы решите пересобрать библиотеку, лучше всего использовать Makefile.adalib в "установленном" каталоге adalib/.

Удачи!

person Simon Wright    schedule 26.10.2013
comment
Спасибо за вашу помощь. Я включил вывод в свой первоначальный ответ. Файлы читаемы, но я не вижу там s-stalib.ali. Можно ли это исправить? Должен ли я копировать *.ali файлы, созданные gnat make -a, в мою папку adalib? - person Patrick Oscity; 27.10.2013
comment
Я сделал резервную копию своей папки adalib и скопировал все файлы .ali, сгенерированные gnat make -a hello, кроме hello.ali, в мою папку adalib. Хотя это работает, я не совсем уверен, что это правильное решение моей проблемы. - person Patrick Oscity; 27.10.2013
comment
Переустановка с sudo помогла. Я не помню, использовал ли я sudo, когда впервые установил gnat, но теперь он работает. Спасибо! - person Patrick Oscity; 27.10.2013
comment
Хорошо, теперь я вижу, как я сломал свою папку adalib. Я использовал gnat clean, который удалил именно те файлы из папки adalib, которые позже отсутствовали. Это, в свою очередь, произошло из-за того, что я перепутал права доступа к файлам. Обычно файлы были бы недоступны для записи, но мои были. Недоступные для записи файлы игнорируются gnat clean. - person Patrick Oscity; 28.10.2013