Автор: | vladimir |
Дата: | 31 окт 2013 10:26 |
Заголовок сообщения: | Подключение библиотек в Lispworks |
Начинаю осваивать CommonLisp и Lispworks. С теми примерами, которые в документации, никаких проблем не возникает - все работает. А вот захотел поэкспериментировать, загрузил примерчик с Вашего сайта (ex-1251), и компилятор говорит, что не может найти пакет "PDF". Библиотеку CL-PDF я скачал и поместил в \LispWorks Personal\lib\. Путь до нее прописал в системной переменной path, но результат тот же. Может в коде нужно что то еще прописать? | |
Автор: | Admin |
Дата: | 31 окт 2013 11:47 |
Заголовок сообщения: | Подключение библиотек в Lispworks |
Папка \LispWorks Personal\lib\ не имеет ничего общего в переменной окружения path. Чтобы загрузить CL-PDF, требуется - развернуть её в собственную папку, куда - не важно, - загрузить cl-pdf.asd и откомпилировать CL-PDF через ASDF (встроен в версию LW6.1). В разработке я предпочитаю встроенный в LW defsystem, а ASDF использую только для распространения готовых библиотек. Моё определение системы прилагаюя в виде файла defsys.lisp, который следует поместиь в корень папки, развёрнуты файлы CL-PDF. Вложения
defsys.lisp | |
Автор: | vladimir |
Дата: | 31 окт 2013 16:32 |
Заголовок сообщения: | Подключение библиотек в Lispworks |
Admin писал(а): - загрузить cl-pdf.asd и откомпилировать CL-PDF через ASDF выдает ошибку "Argument NIL is not of type PATHNAME, STRING, or FILE-STREAM." на строке (load (merge-pathnames "iterate/iterate.asd" *load-truename*)) Может я не правильно компилирую? Делаю это через команду "компилировать буфер". Что значит откомпилировать через ASDF? Можно поподробнее. | |
Автор: | Admin |
Дата: | 31 окт 2013 18:40 |
Заголовок сообщения: | Подключение библиотек в Lispworks |
Версия с fractalconcepts требует ещё библиотеки ITERATE. В версии для себя я от неё избавился, переписав код через LOOP, но Вам лучше выкачать ITERATE.и загружать её перед CL-PDF, По-поводу ASDF и ITERATE см. http://cliki.net/ | |
Автор: | vladimir |
Дата: | 01 ноя 2013 02:54 |
Заголовок сообщения: | Подключение библиотек в Lispworks |
Библиотека ITERATE присутствует в каталоге \CL-PDF\ITERATE\ изначально, при развертывании CL-PDF. Может дело в переменной *load-truename*, которая имеет значение NIL? | |
Автор: | Admin |
Дата: | 01 ноя 2013 06:36 |
Заголовок сообщения: | Подключение библиотек в Lispworks |
*load-truename* действительно есть NIL, когда оценивание происходит в листенере, ибо с потоком листенера не связан никакой файл. Но будучи внутри формы загружаемого файла, *load-truename* дает путь к нему. При оценвании отдельной формы в редакторе, вроде Evaluate Region, эта переменная должна иметь значение, если c буфером связан файл, т.е. буфер был загружен или уже сохранен. Замечу, что вопрос имеет малое отношение к CL-PDF. | |
Автор: | vladimir |
Дата: | 01 ноя 2013 07:00 |
Заголовок сообщения: | Подключение библиотек в Lispworks |
Тогда не понятно почему ошибка в выражении Код: (load (merge-pathnames "iterate/iterate.asd" *load-truename*)) если файл iterate.asd имеется, путь до него правильный, компилирую я правильно (через ASDF)? В чем ошибка? Конечно, это имеет малое отношение к CL-PDF, я всего лишь на его примере хочу разобраться с подключением сторонних библиотек. Хотя, сама библиотека CL-PDF, тоже, очень интересна. | |
Автор: | Admin |
Дата: | 01 ноя 2013 08:34 |
Заголовок сообщения: | Подключение библиотек в Lispworks |
Требуется уточнить, как Вы оцениваете строчку кода Код: (load (merge-pathnames "iterate/iterate.asd" *load-truename*)) Я так понимаю, она из файла cl-pdf.asd. Грузите ли Вы это файл целиком? Или оцениваете построчно? | |
Автор: | vladimir |
Дата: | 01 ноя 2013 09:28 |
Заголовок сообщения: | Подключение библиотек в Lispworks |
Открываю файл cl-pdf.asd в окне редактора и запускаю "Компилировать буфер", тогда ошибка Код: "Argument NIL is not of type PATHNAME, STRING, or FILE-STREAM." А если выполнить одну строку (load (merge-pathnames "iterate/iterate.asd" *load-truename*)) в том же редакторе, то ошибка другая Код: syntax error in (DEFSYSTEM :ITERATE :COMPONENTS ((:FILE "package") (:FILE "iterate" :DEPENDS-ON #))): Unpaired keyword in (DEFSYSTEM :ITERATE :COMPONENTS ((:FILE "package") (:FILE "iterate" :DEPENDS-ON #))) Если загружать файл cl-pdf.asd через команду load, то ошибка как в предыдущем случае. | |
Автор: | Admin |
Дата: | 01 ноя 2013 10:07 |
Заголовок сообщения: | Подключение библиотек в Lispworks |
Вообще, файлы определения систем обычно не компилируют, а только загружают в исходном виде. По-видимому, при компиляции и загрузке буфера, связь с файлом теряется. Что касается оценивания отдельной строчки, это проблемы с iterate. Возможно определние делается не в том пакете. Често говоря, проблемы iterate мне не интересны | |
стр. 1 из 2 | Часовой пояс: UTC + 3 часа |
Разработка сайта Исток-Системы (www.ystok.ru) | Powered by phpBB (www.phpbb.com) |