Снёс старую версию. Скачал и установил новую 3.0.4.
Вроде всё как обычно.
Но при первом же запуске столкнулся с проблемой.
Компилирую программу и запускаю на выполнение.
Выдаётся окошко с ошибкой:
program xxx.exe
not run
DosError - 123
Где - xxx.exe - exe-файл, сгенерированный на основе моего исходника xxx.pas.
Что интересно, exe-файл всё же генерируется и при его запуске вне интегрированной среды нормально выполняется.
Т.е. делаю вывод, что ошибка связана с самой IDE, с её настройками.
В документации не нашёл описания ошибки 123.
Прошу помочь разобраться.
Ошибка DosError=123 выдаваемая IDE
Модератор: Модераторы
123. Too many symbols (слишком много символов)
Программа или модуль объявляет более 64К символов. Если
программа или модуль компилируется с опцией {$D+}, то попробуйте ее
выключить - заметим, однако, что это будет препятствовать
нахождению ошибок выполнения в этом модуле. В противном
случае, можно попробовать переместить несколько объявлений в
отдельный модуль.
У тебя в настройках наверно диалект турбопаскалевский установлен, а когда компилируешь из под командной строки, используется fpc диалект, он почти такой-же но нет проблем с доступом к большим ресурсам, как в оригинальных турбо/болландпаскалях. Поищи в настройках диалект используемого паскаля, или установи в начале программы "счастливую комбинацию" директив компилятора:
Код: Выделить всё
{$GOTO ON}
{$mode fpc}
{$R+}Спасибо, что откликнулся..
попробовал по твоему совету. увы, не помогло.
попробовал все допустимые сочетания ключей компиляции - бес толку..
компиляция - не из командной строки, а из IDE. компиляция из командной строки проходит нормально. Как я понимаю, ошибка связана именно с IDE.
Насчёт "слишком много символов"..
Да я уже пытался совсем простое сделать - "program xxx; begin end."
чую, что дело в какой-то ерунде, но никак не пойму, в чём дело.
ведь в предыдущей версии всё было норм. а тут установил 3.0.4 - и не работает.
впору IDE не пользоваться..
не знаю, что делать.
попробовал по твоему совету. увы, не помогло.
попробовал все допустимые сочетания ключей компиляции - бес толку..
компиляция - не из командной строки, а из IDE. компиляция из командной строки проходит нормально. Как я понимаю, ошибка связана именно с IDE.
Насчёт "слишком много символов"..
Да я уже пытался совсем простое сделать - "program xxx; begin end."
чую, что дело в какой-то ерунде, но никак не пойму, в чём дело.
ведь в предыдущей версии всё было норм. а тут установил 3.0.4 - и не работает.
впору IDE не пользоваться..
не знаю, что делать.
Если дело в настройках ИДЕ, то надо создать в каталоге предыдущей версией ИДЕ рабочую програмку, скомпилировать, запустить и выйти чтобы в каталоге сохранились конфиги со всеми настройками. После установить ИДЕ 3.0.4, зайти в каталог и открыть ей тот файл чтобы подхватились старые конфиги со всеми настройками. Если не поможет, то наверно дело в самой версии fpc-3.0.4 В линуксе с этой версией проблемы сплошные: линковать собранные бинарники не хочет, требует самую новую версию линковщика, а она не везде есть. Потом конечно линковщик нужной версии везде везде будет, но не сейчас. А вин32 версия ИДЕ у меня в эмуляторе вообще не запускается (как и линуксовый лазарус, собранный 3.0.4 версией компилятора) - валится с ошибкой. Так что проверить настройки виндовой ИДЕ пока не могу. Может на десятке, она и работает, но где та десятка
Дата у файла ld.exe 2012 года, потому, логично предположить что компилятор работающий из командной строки, линкует бинарники по старому формату, а в ИДЕ могло что-то из нового просочиться - его тестировать должны были реже, в то время резко пилили лазарус, внедряли новую версию компилятора. У бет лазаруса был компилятор 3.0.2 а у релиза - сразу 3.0.4, куда спешили с релизом, неясно.
Если не работает что надо на версии 3.0.4, проще пока посидеть на версии 3.0.2, она сверхновый линковщик не требует, пока версии ОС не подтянутся до требований 3.0.4 или в следующей версии не починят виндовую ИДЕ.
Если не работает что надо на версии 3.0.4, проще пока посидеть на версии 3.0.2, она сверхновый линковщик не требует, пока версии ОС не подтянутся до требований 3.0.4 или в следующей версии не починят виндовую ИДЕ.
Проблема устранена.
Причём не мной, но само собой.
Вообще, история непонятная.
Стоит начать с того, что ошибки DosError с кодом 123 во FreePascal вообще нет. Или, по крайней мере, она не документирована.
В TurboPascal была такая ошибка, слишком много переменных, а во FreePascal нет.
Пробовал установить версию 2.6.4. Результат тот же.
Любой файл, даже такой наипростейший как: program x; begin end. выполнялся из под TextIDE с ошибкой 123.
Но при запуске exe-файла помимо IDE всё было нормально.
Были проверены конфигурационные файлы, переменные окружения, никаких подозрений..
Но в это время я решил устранить давно имевшиеся проблемы. И вовсе не с FreePascal.
У меня были напрасно установлены драйверы звуковой карты (бортовая звуковая карта не работает, поэтому звука в принципе нет и драйверы не нужны) и была неисправна мышь.
Я удалил драйвера звуковой карты. Дошёл до компьютерного магазина и купил новую мышь.
В очередной раз включив комп, запустил (уже без надежды) Free Pascal и, о чудо, сообщение об ошибке DosError -= 123 исчезло.
Конечно, я бесконечно рад, хотя так и не понял, а в чём же было дело...
Причём не мной, но само собой.
Вообще, история непонятная.
Стоит начать с того, что ошибки DosError с кодом 123 во FreePascal вообще нет. Или, по крайней мере, она не документирована.
В TurboPascal была такая ошибка, слишком много переменных, а во FreePascal нет.
Пробовал установить версию 2.6.4. Результат тот же.
Любой файл, даже такой наипростейший как: program x; begin end. выполнялся из под TextIDE с ошибкой 123.
Но при запуске exe-файла помимо IDE всё было нормально.
Были проверены конфигурационные файлы, переменные окружения, никаких подозрений..
Но в это время я решил устранить давно имевшиеся проблемы. И вовсе не с FreePascal.
У меня были напрасно установлены драйверы звуковой карты (бортовая звуковая карта не работает, поэтому звука в принципе нет и драйверы не нужны) и была неисправна мышь.
Я удалил драйвера звуковой карты. Дошёл до компьютерного магазина и купил новую мышь.
В очередной раз включив комп, запустил (уже без надежды) Free Pascal и, о чудо, сообщение об ошибке DosError -= 123 исчезло.
Конечно, я бесконечно рад, хотя так и не понял, а в чём же было дело...
и была неисправна мышь.
Проверь, реально ли та мышь неисправна, или не тянет блок питания и USB проседает по напряжению.
В последнем случае из ниоткуда случаются ТАКИЕ глюки, что я навсегда зарёкся экономить на БП и беру всегда с двухкратным запасом.
Такая тривиальная вещь, а на стабильность машины ОЧЕНЬ сильно влияет. При нестабильномм питании могут и зелёные человечки полезть.
Если у тебя процессор Штеуд (интел) и автообновления не выключены, то могла прилететь заплатка от недавно обнародованной уязвимости процессора, которая кроме проседания скорости должна была ещё на что-то повлиять. Штеудовцы халтурно проверяли кэш процессора и на этом получали прирост скорости.
