при запуске Lazarus вываливает окно с ошибкой на вкладке Compiler "Error: system.ppu not found. Check your fpc.cfg." в /etc/fpc.cfg прописан путь -Fu/usr/lib/fpc/units/i386-linux/rtl в этом каталоге system.ppu лежит
Несмотря на это сообщение продолжает работать?
http://wiki.lazarus.freepascal.org/Unit_not_found_-_How_to_find_units http://community.freepascal.org:10000/bboards/message?message_id=251985&forum_id=24082 Может, будет полезно.
Это связка fpc-2.5 & lazarus-0.9.31 Уже год как пытаюсь от этого косяка избавится. Сам по себе лазарь работает, но это как минимум раздражает.
Если сменить в файле /etc/fpc.cfg русские сообщения (errorru.msg) английскими (errore.msg), ошибка не возникает. Вообще стоит задуматься, включать ли русские сообщения об ошибках в FPC, когда он используется из-под Lazarus. Также лечится передачей fpc ключа -Fr/usr/lib64/fpc/msg/errore.msg, только это надо как-то заранее указать. Возможно, в недрах настроек lazarus есть такая опция, не знаю.
То есть пересборка fpc отменяется, наверное. По крайней мере со сменой версии. Это радует, спасибо!
(В ответ на комментарий №4) > Если сменить в файле /etc/fpc.cfg русские сообщения (errorru.msg) английскими > (errore.msg), ошибка не возникает. Вообще стоит задуматься, включать ли русские > сообщения об ошибках в FPC, когда он используется из-под Lazarus. > > Также лечится передачей fpc ключа -Fr/usr/lib64/fpc/msg/errore.msg, только это > надо как-то заранее указать. Возможно, в недрах настроек lazarus есть такая > опция, не знаю. Возможно, стоит по умолчанию установить в fpc английские сообщения, а русскую версию fpc/fp вызывать скриптами fpc-rus , fp-rus ?
(В ответ на комментарий №6) > Возможно, стоит по умолчанию установить в fpc английские сообщения, а русскую > версию fpc/fp вызывать скриптами fpc-rus , fp-rus ? Нет английской версии fpc, нет русской версии fpc. Язык выводимых сообщений определяется в fpc.cfg.
(В ответ на комментарий №7) > (В ответ на комментарий №6) > > Возможно, стоит по умолчанию установить в fpc английские сообщения, а русскую > > версию fpc/fp вызывать скриптами fpc-rus , fp-rus ? > > Нет английской версии fpc, нет русской версии fpc. Язык выводимых сообщений > определяется в fpc.cfg. Никто ж не спорит. Вопрос в том, что "из коробки".
(В ответ на комментарий №8) > (В ответ на комментарий №7) > > (В ответ на комментарий №6) > > > Возможно, стоит по умолчанию установить в fpc английские сообщения, а русскую > > > версию fpc/fp вызывать скриптами fpc-rus , fp-rus ? > > > > Нет английской версии fpc, нет русской версии fpc. Язык выводимых сообщений > > определяется в fpc.cfg. > > Никто ж не спорит. Вопрос в том, что "из коробки". Не знаю. Не знаю. В environmentoptions.xml Можно прописать такое: <CompilerMessagesFilename Value="/usr/lib/fpc/msg/errore.msg"> <History Count="1"/> </CompilerMessagesFilename> По идеи это как раз и указывает fpc какой файл сообщений использовать. Но лазарь это игнорирует. А вот то что Гриша предлагает помогает. Т.е. в /etc/fpc указать английский файл сообщений. Но тогда это отразиться и на fp и на lazarus. А мы уже народ приучили, что у нас сообщения выводятся на русском. Сообщения компилятора на русском удобно для школьников (а ведь в основном fpc/lazarus используется в школах). Да и в инете не раз встречал упоминания учителей, преподавателей, о том как удобно читать сообщения компилятора в fpc/lazarus'е на русском. Вот и не знаю как быть.
(В ответ на комментарий №9) > Вот и не знаю как быть. Мы сейчас обсуждали с Гошей. Вот что лучше всего сделать: 1. Бага происходит из-за того, что при определении конфигурации fpc, lazarus, по-видимому, парсит вывод fpc. Так как вывод русский, то он "сходит с ума". 2. Надо найти это место и запускать там fpc с опцией, указывающей на файл английских сообщений. Остается подтвердить 1., найти этот код и исправить в соответствии с 2.
lazarus "сходит с ума" если указать в /etc/fpc русский, голандский, португальский. Только что проверял, остальные не пробовал.
Сейчас сравнил по количеству строк: errore.msg - 3273; errorru.msg - 2833; errorptu.msg - 3241; errorn.msg - 2373. У нас уже были проблемы из-за формата errorru.msg. Возможно эта бага из той же оперы.
(В ответ на комментарий №11) > lazarus "сходит с ума" если указать в /etc/fpc русский, голандский, > португальский. Только что проверял, остальные не пробовал. Естественно, если он умеет парсить только внглийский вывод.
(В ответ на комментарий №13) > (В ответ на комментарий №11) > > lazarus "сходит с ума" если указать в /etc/fpc русский, голандский, > > португальский. Только что проверял, остальные не пробовал. > > Естественно, если он умеет парсить только внглийский вывод. Может его можно обучить? Codetools не для этого предназначена?
В lazarus-1.0.4 ошибка всё ещё актуальна. Может, пересобрать русские сообшения, чтобы соответствовали английским по количеству и идентификаторам?
(В ответ на комментарий №15) > В lazarus-1.0.4 ошибка всё ещё актуальна. Может, пересобрать русские сообшения, > чтобы соответствовали английским по количеству и идентификаторам? Эта ошибка будет актуальна и Лазарусе 1.0.6. Обойти ее очень просто (по кр. мере у меня сработало). 1. Сначала, когда не находит system.ppu, проигнорировать и запустить IDE. 2. В запущеной IDE в меню "Сервис" кликнуть на пункте "Пересмотреть каталог исходного кода FPC". После чего можно перезапустить Лазаря. Никакой Check your fpc.cfg не требуется. Оно само всё прочекит. :) У меня после проделанного ругань пропадала навсегда и в 1.0.4 и в 1.0.6. И вообще это, похоже, микроскопический глючок, который ничему не мешает. Вполне достаточно отразить это в документации. Как было в 0.9.30 - уже не помню.
(В ответ на комментарий №16) > ... > Обойти ее очень просто ... > ... Можно ещё попытаться пропатчить файл lazarus.pp, но сначала надо понять, в каком месте вываливается ошибка, и перед этим местом попробовать вставить вызов процедуры mnuEnvRescanFPCSrcDirClicked из файла main.pp, т. к. именно она всё и выправляет. Возможно это сработает. Но этим должен заниматься тот, кто хорошо знает коды Лазаря. У меня таких знаний нет. ;)
(В ответ на комментарий №10) > ... > 2. Надо найти это место и запускать там fpc с опцией, указывающей на файл > английских сообщений. > > ... найти этот код и исправить в соответствии с 2. To cas. Этот код находится в файле ../components/codetools/definetemplates.pas начиная со строки 7200 (для версии 1.0.6). Там вызывается fpc с несколькими параметрами, один из которых надо, наверное, заменить нужной строкой. По простому не получается. ;)
Created attachment 5776 [details] Патч для Лазаря 1.0.6 На самом деле это грубый костыль скорее, но работает. Как поведёт себя на железе, отличном от Intel Pentium - не знаю. Это конечное звено цепочки вызовов. Сюда попадаем из строк 7200... а хорошо-бы найти и пропатчить начальное звено. Может кто поможет ?? ЗЫ. Для справки. При клике в меню "Пересмотреть ..." подставляется другой файл /usr/lib/lazarus/components/codetools/fpc.errore.msg. С ним тоже всё работает.
Спасобо за информацию. После накатывания обновления с 4 на 6 у меня вылетала данная ошибка. сейчас нет. Но вот вопрос, начала вылетать постоянно ошибка "Error: /usr/bin/ppc386 returned an error exitcode (normal if you did not specify a source file to be compiled)". Т.е. нет цели для компиляции. в чём может быть дело??? На 4-ке такого не было. С уважением, Вадим.
Плюсую. в Lazarus 1.0.6 из p6 есть серьезная проблема: любая ошибка в коде при компиляции выдает "Error: /usr/bin/ppc386 returned an error exitcode (normal if you did not specify a source file to be compiled)" при этом навигации к строке с ошибкой не происходит. если запускать lazarus из консоли, то fpc показывает там все подробности ошибки и номер строки/символа.
(В ответ на комментарий №21) > Плюсую. в Lazarus 1.0.6 из p6 есть серьезная проблема: любая ошибка в коде при > компиляции выдает > "Error: /usr/bin/ppc386 returned an error exitcode (normal if you did not > specify a source file to be compiled)" > при этом навигации к строке с ошибкой не происходит. > ... Есть такое дело. Лечится очень просто. 1-й способ - не делать ошибок. :) 2-й способ - в файле /etc/fpc.cfg закомментировать строку с errorru.msg и раскомментировать строку с errore.msg (из под рута естественно). Выглядеть это будет как то так : ... -Fr/usr/lib/fpc/msg/errore.msg ... # -Fr/usr/lib/fpc/msg/errorru.msg ... Лазарус, похоже, не понимает русскоязычные (и любые другие кроме англ.) сообщения от fpc (в 1.0.4 то-же самое вроде было). В версии 0.9.30 этого не было, там файл /etc/fpc.cfg, похоже, не использовался, и соответствующего пункта в меню там не было ("Пересмотреть..."). У него был другой большой недостаток - не получалось добавить в палитру компонентов свои компоненты. Тут требовалась самопересборка и он пытался записать всё в /usr/lib/..., что можно сделать только от рута, а в новых версиях стало всё нормально. Теперь, после самопересборки, он пишет всё в ~/.lazarus и проблемы пропали, причем искаропки. Простой пример - Double Commander - там таких компонент много. В 0.9.30 собрать в графической среде не получалось, а начиная с 1.0.4 - проблем больше нет. Что хочу - то и вытворяю. Это надо, наверное, на разработчиков кляузу писать (им самим же).
(В ответ на комментарий №22) > (В ответ на комментарий №21) > > Плюсую. в Lazarus 1.0.6 из p6 есть серьезная проблема: любая ошибка в коде при > > компиляции выдает > > "Error: /usr/bin/ppc386 returned an error exitcode (normal if you did not > > specify a source file to be compiled)" > > при этом навигации к строке с ошибкой не происходит. > > ... > > Есть такое дело. > Лечится очень просто. > 1-й способ - не делать ошибок. :) > 2-й способ - в файле /etc/fpc.cfg закомментировать строку с errorru.msg > и раскомментировать строку с errore.msg (из под рута естественно). > > Выглядеть это будет как то так : > ... > -Fr/usr/lib/fpc/msg/errore.msg > ... > # -Fr/usr/lib/fpc/msg/errorru.msg > ... Думаю, что надо это, наконец-то, сделать по умолчанию. И написать README о том, включить и когда это сделать разумно. По сути, немногочисленные русские сообщения об ошибках, не мешают работе только при запуске fpc и fp без lazarus. Тот, кто не использует lazarus, включит их сам.
(В ответ на комментарий №23) > ... > Думаю, что надо это, наконец-то, сделать по умолчанию. И написать README о том, > включить и когда это сделать разумно. > По сути, немногочисленные русские сообщения об ошибках, не мешают работе только > при запуске fpc и fp без lazarus. Тот, кто не использует lazarus, включит их > сам. Дык в сс #16 я именно это и предложил... В Лазаре 0.9.30 по дефолту сразу использовался файл /usr/lib/lazarus/components/codetools/fpc.errore.msg и никакой проблемы не было. В окно сообщений компилятора (в графике) всё валилось только на английском, и вроде никто не жаловался. Причем туда валилось слишком много ненужного и некритичного. В Лазарях 1.*.* они это сильно почистили, пишется только полезная инфа (тоже на английском), но вот другая проблемка вылезла ..., зато проблему с доп. компонентами и самопересборкой они хорошо решили. Кстати, errorru.msg пакостит только при работе в графике, в терминале (а также в хашере, естественно) это никак не проявляется. ЗЫ. Там, вообще-то, есть ещё одно место, где можно попробовать пропатчить, (имхо - более кошерное) может сработает. Пока руки не доходят. Найду время - попробую и сообщу сюда-же.
(В ответ на комментарий №24) > ... > Найду время - попробую и сообщу сюда-же. Твою мать! (Извиняюсь конечно). Сделал так: 1. Сделал дубликат /etc/fpc.cfg. 2. Переименовал его в extrafpc.cfg ну и положил рядом с оригиналом. 3. В extrafpc.cfg закомментировал #-Fr/usr/lib/fpc/msg/errorru.msg и раскомментировал -Fr/usr/lib/fpc/msg/errore.msg 4. В настройках Лазаря: Проект -> параметры проекта -> Другие: - снял птицу "Использовать стандартный файл настройки...(fpc.cfg)..." - поставил птицу "Использовать дополнительный файл настройки..." - в окошке прописал /etc/extrafpc.cfg (обязательно полный путь!!) - в самом низу поставил птицу "Использовать текущие параметры по умолчанию..." 5. И всё заработало, и патчить не надо ничего. При этом в параметры вызова fpc всё подставляется вполне корректно (параметры ... -n @/etc/extrafpc.cfg ...), что хорошо видно, если в этом же окне кликнуть по кнопкам "Test", "Показать параметры", "...". Единственное - окна при первом старте Лазаря будут выскакивать, придется их игнорировать. ЗЫ. Вот, нашлось уже 2 пути решения проблемы.
Created attachment 5792 [details] файлы fpc.cfg и логи запуска > Там, вообще-то, есть ещё одно место, где можно попробовать пропатчить, > (имхо - более кошерное) может сработает... Сработало... Но это уже не патч а бан, который решает обе проблемы: ошибку при первом запуске, и ошибку при компиляции. Подробности в комментариях к файлам в архиве. Читать в порядке 1-2-3-4. ЗЫ. Это не первоапрельская шутка.
(В ответ на комментарий №25) > 2. Переименовал его в extrafpc.cfg ну и положил рядом с оригиналом. Тогда проще в Lazarus сделать подобный файл с нужными исправлениями, положить его в /etc/lazarus.cfg и прописать его использование по умолчанию. Как идея?
(В ответ на комментарий №27) > ... > Тогда проще в Lazarus сделать подобный файл с нужными исправлениями, положить > его в /etc/lazarus.cfg и прописать его использование по умолчанию. Как идея? Нормальная идея. На самом деле его совершенно безразлично, куда положить. Работать будет. Главное - полный путь указать. Глюк при компиляции программы с ошибками это решает. Но это не решает проблему первого запуска. См. 4-й лог из архива. Там первый старт RunTool по любому идёт с пустым ExtraOptions, повидимому в расчете на то, что fpc выдаст нужную информацию для распарсивания из своего errore.msg. Причем пустое значение предписано в файле .../components/codetools/definetemplates.pas строка 703. Декларация функции Update. Т. е. прямо в декларации. А вот бан, или оставление только errore.msg, решает обе проблемы.
(В ответ на комментарий №28) > ... > А вот бан, или оставление только errore.msg, решает обе проблемы. В догонку, для сведения. Сейчас попробовал 0.9.30. Так он, похоже, errore.msg из /etc/fpc.cfg вообще не использует, а сразу свой подставляет. Там запуск RunTool с пустым ExtraOptions напрочь отсутствует как при первом старте Лазаря, так и позже. Потому проблем и не было. Ошибку при компиляции проверять даже не стал.
Спасибо за помощь! Закомментировал русский файл, расскомментировал английский - всё заработало!
(В ответ на комментарий №30) > Спасибо за помощь! Закомментировал русский файл, расскомментировал английский - > всё заработало! Пожалуйста! А теперь попробуйте (ради эксперимента) очистить каталог /home/.../.lazarus и запустите его из меню или из терминала ...$ startlazarus. Это равноценно первому запуску после установки программы. (Ни один Ваш проект при этом не пропадёт! - они в других каталогах). Стартовых окон, описанных в СС#1 не должно появиться, должен сразу нормально стартовать. А то может это только у меня всё работает ?? (т. к. всё сильно перепахано).
Created attachment 5795 [details] Минимальная заготовка проекта (В ответ на комментарий №27) > ... > Тогда проще в Lazarus сделать подобный файл с нужными исправлениями, положить > его в /etc/lazarus.cfg и прописать его использование по умолчанию. Как идея? Если уж подкладывать в /etc/lazarus/ то наверное минимальную заготовку проекта (см. вложение). Там, возможно, секцию Debugging можно тоже полностью убрать (не пробовал). Эта заготовка добавляет в параметры вызова компилятора дополнительный параметр -Fr/бла-бла-бла. Посмотреть можно в том же самом окне, где и про fpc.cfg было, но теперь никакие манипуляции с "птицами" не требуются. Это будет по дефолту запись в "параметры пользователя" в любом НОВОМ проекте. В старые пректы, возможно, придется добавить руками. В файл project.lpi всё что нужно - пишется Лазарем по умолчанию (как и было раньше), а из этой болванки - дописывается. Проблему при компиляции программы с ошибками это устраняет полностью, т. е. errorru.msg можно оставить, но тогда проблема первого запуска останется (на самом деле она ерундовая). У меня работает (laz 1.0.6; fpc 2.6.2; бранч р6). Хорошо-бы Шенцев прокомменторовал это, если доступен.
(В ответ на комментарий №32) > Created an attachment (id=5795) [details] > Минимальная заготовка проекта > ... Склеоз, блин! Файл нужно обозвать projectoptions.xml .
(В ответ на комментарий №32) > Там, возможно, секцию Debugging можно тоже полностью убрать... Можно. Убрал всё лишнее. Теперь projectoptions.xml выглядит так: <?xml version="1.0"?> <CONFIG> <CompilerOptions> <Other> <CustomOptions Value="-Fr/usr/lib/fpc/msg/errore.msg"/> <CompilerPath Value="$(CompPath)"/> </Other> </CompilerOptions> </CONFIG> При этом errorru.msg ВКЛЮЧЕН !!. Проблемы, описанной в сс#20 и сс#21 больше не возникает, а проблему первого запуска один из разрабов Лазаря (Mattias вроде) рекомендовал обходить "пересмотром каталогов исходного кода fpc". (Подсмотрел в гугле в какой-то ихней рассылке - ссылку, естественно, забыл скопировать, а зачем ? ...) Теперь при сборке в терминале путём lazbuild somefile.lpi вся инфа идет на английском, а при сборке путем fpc somefile.pas - на русском. В обеих случаях - успешно (если нет ошибок). fpc 2.6.2, lazarus 1.0.8 (или 1.0.6), бранч p6.
lazarus-1:1.0.8-alt1 -> sisyphus: * Fri May 24 2013 Andrey Cherepanov <cas@altlinux> 1:1.0.8-alt1 - New version 1.0.8 - Fix search FPC compiler with localized output from fpc (ALT #25991) - Set correct path to xterm for all existing modules (ALT #24803) - Update PowerPDF to 0.9.10 (ALT #24804) - Add libdbus-devel and xterm to requires - Pack man pages - Add patches from Fedora - Make symlink /usr/bin/lazarus for lazarus-ide - Add docs and examples in main package