Перейти к содержимому
  • 0
Jack_Savage

Ошибка Attempt to call global 'require' При загрузке с дискеты.

Вопрос

Вот есть код и что то как то не работает.

Ошибка возникает если загружаюсь с дискеты(init.lua).

Если это запускать через OpenOs все норм

Помогите пожалуйста.

post-20219-0-15352800-1489419552_thumb.png

post-20219-0-37042300-1489419558_thumb.png

post-20219-0-58061900-1489419561_thumb.png

Изменено пользователем Jack_Savage

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендуемые сообщения

4352d137f7a645ee0e99a80bac231e4f.jpeg

 

А что ты хотел? Библиотеки которые ты подключаешь в своей программе находятся в OpenOS. По этому без её установки, они не будут подключаться и работать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

4352d137f7a645ee0e99a80bac231e4f.jpeg

 

А что ты хотел? Библиотеки которые ты подключаешь в своей программе находятся в OpenOS. По этому без её установки, они не будут подключаться и работать.

И как их подключить скажите ???

Без openOS

 

Изменено пользователем Jack_Savage

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

И как их подключить скажите ???

Без openOS

 

Они подключатся только если установлена OpenOS иначе пожалуй никак

Изменено пользователем Litvinov

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

И как их подключить скажите ???

Без openOS

 

Ну судя по ошибки на саму функцию require, которая не была найдена. Тебе скорее всего придётся создавать эту функцию самому, так же, как она и в OpenOS создана.

Но зачем нам велосипеды? Проще OpenOS использовать, чем изобретать велосипеды.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Они подключатся только если установлена OpenOS иначе пожалуй никак

В принципе и без OpenOS может, если другие не официальные OS написаны так, что поддерживают функцию подключения библиотек. (а любая нормальная OS в ОС должна это делать обязательно)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот есть код и что то как то не работает.

Ошибка возникает если загружаюсь с дискеты(init.lua).

Если это запускать через OpenOs все норм

Помогите пожалуйста.

вот здесь @Totoro доступно объяснил, что делать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В принципе и без OpenOS может, если другие не официальные OS написаны так, что поддерживают функцию подключения библиотек. (а любая нормальная OS в ОС должна это делать обязательно)

Думаю вряд ли это сейчас нужно автору вопроса. Но всё же с "иначе пожалуй никак" я поспешил в ответе)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну судя по ошибки на саму функцию require, которая не была найдена. Тебе скорее всего придётся создавать эту функцию самому, так же, как она и в OpenOS создана.

Но зачем нам велосипеды? Проще OpenOS использовать, чем изобретать велосипеды.

require('computer') работает. А это нет....

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я хз как именно ты его стартуешь, но судя по всему, эта хрень у тебя запускается ДО того как загружена OpenOS.

Функцию require задаёт именно OpenOS, поэтому очевидно программа не может её найти и крашится.

 

Почему же работают первые строки, спросишь ты? А это происходит по двум причинам.

 

Во-первых, компьютеру всегда и везде доступны глобальные объекты computer и components. Их можно использовать даже из EEPROM.

 

Во вторых, конструкции типа A or B вычисляются лениво.

Это значит, что если компьютер рассчитал левую половину выражения (A) и она "истинна", то он не будет считать правую половину.

Потому что true or <что-то> всегда даст "истину", и считать вторую половину смысла никакого нет, т.к. на неё пофиг.

Поэтому, несмотря на то что в правой половине ты вызываешь несуществующую функцию require, компьютер не кидает ошибку - он даже не пытался выполнить этот вызов.

 

А вот на третьей строке, левая половина (event) оказывается "ложной", потому что глобального объекта event не существует.

Компьютер пробует рассчитать правую половину выражения, и сталкивается с тем, что у тебя там идет вызов несуществующей функции.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я хз как именно ты его стартуешь, но судя по всему, эта хрень у тебя запускается ДО того как загружена OpenOS.

Я запускаю это без OS.

Это файл init.lua на дискете.

И загружаюсь с дискеты.

Изменено пользователем Jack_Savage

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У тебя вставлен Lua BIOS, да?

Он как раз ищет и запускает init.lua как раз.

 

Поскольку OpenOS недоступна, тебе придётся обходиться без неё. =)

Можешь надрать нужного контента и засунуть на ту же дискету (например ту же функцию require).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У тебя вставлен Lua BIOS, да?

Он как раз ищет и запускает init.lua как раз.

 

Поскольку OpenOS недоступна, тебе придётся обходиться без неё. =)

Можешь надрать нужного контента и засунуть на ту же дискету (например ту же функцию require).

Простите за наглость...

Как сделать эту функцию то ?)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Как сделать эту функцию то ?)

А зачем её делать? Ты либо запускаешь программу по окончании полной загрузки системы, которая обеспечивает все её возможности, либо пользуешься ограниченными возможностями, самостоятельно реализуя функции библиотек системы. Либо пишешь свою систему со всякими require и прочими функциями. Последний путь самый сложный, его уже многие мечтали пройти, да никто пока не прошёл.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

... Либо пишешь свою систему со всякими require и прочими функциями. Последний путь самый сложный, его уже многие мечтали пройти, да никто пока не прошёл.

 

Тому есть пять причин:D

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А зачем её делать? Ты либо запускаешь программу по окончании полной загрузки системы, которая обеспечивает все её возможности, либо пользуешься ограниченными возможностями, самостоятельно реализуя функции библиотек системы. Либо пишешь свою систему со всякими require и прочими функциями. Последний путь самый сложный, его уже многие мечтали пройти, да никто пока не прошёл.

2 вариант)

 

Ну спасибо за ту функцию :3

Изменено пользователем Jack_Savage

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну, придумать самому, или реквизировать вот отсюда.

Ух ты, там оказывается в этой функции можно ставить какие либы будут загружается при запуске OpenOS

Изменено пользователем Laine_prikol

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...