2013-11-28 4 views
3

Я пишу расширение для приложения текстового редактора Scratch на элементарной ОС Luna. Но документация практически не существует для создания расширений, и я понятия не имею, как действовать после написания моего основного кода для расширения.Как сгенерировать файл .so

Я уже написал расширение. Я не могу его использовать или проверять, так как он должен быть «установлен». Я часами искал документы, но их не было. Я тем не менее, найти комментарий на странице панели запуска нуля, что говорит

Как правило, вы должны создать файл pluginname.so и поместить его в Lib/царапины/плагины/pluginname с файлом pluginname.plugin

Отлично. Это похоже на последнюю часть создания расширения для Scratch. Что такое .so-файл и как его создать? Я уже создал другие необходимые файлы, такие как файл .plugin и файл .vala.

Да, я искал файлы .so, но все, что я нашел, были случайными вещами, как использование его с заголовками C или C++, но, очевидно, это не сработает для меня, так как я использую Vala?

Как сгенерировать файл .so? С чего я его создаю?

+1

Это не случайно! Вы пишете расширение на языке, который генерирует .so-файл (например, C/C++ и т. Д.), А затем вы используете его в своем приложении с нуля. См. Этот q/a http://stackoverflow.com/questions/9809213/what-are-a-and-so-files –

+0

@PreetSangha Спасибо за ссылку :-) Кстати, файлы .so в основном похожи на DLL в Windows ? – uSeRnAmEhAhAhAhAhA

+0

У вас есть другие ресурсы? Я не знаю, что говорит эта страница :( – uSeRnAmEhAhAhAhAhA

ответ

1

От Scratch Wiki

Из-за ограничений безопасности браузера, Царапины 2.0 не может взаимодействовать с аппаратными устройствами напрямую. Вместо этого аппаратные расширения поставляются с вспомогательным приложением , отдельным приложением, которое пользователь должен установить и запустить на своем компьютере. Scratch связывается со вспомогательным приложением через HTTP запросов, а вспомогательное приложение сообщает об оборудовании. В будущем некоторые расширения могут упаковывать свои вспомогательные приложения в качестве плагинов для браузера.

Вот шаги для создания и тестирования расширения Царапины:

  1. Создать в файл описания расширения
  2. Создать свой хелпер приложение и запустить его
  3. Открыть Царапины 2 Offline Редактор
  4. Импорт описание с расширением (щелкнуть мышью на «Файл» и выбрать «Импорт экспериментального расширения» в меню)
  5. Новые блоки расширения появятся на палитре «Больше блоков»
  6. Проверьте расширение и повторите попытку!

Helper приложение может быть написано на любом языке, который поддерживает серверные сокеты, такие как Python, Node.js, Java, C и т.д.

Как вам я гнался вокруг вики но я не могу найти пример с источником. Поэтому я могу полностью решить ваш вопрос.

Если вы посмотрите на Build .so file from .c file using gcc command line, вы увидите, как может быть создан простой .so. Однако какой код входит в расширение Scratch, которого я не знаю. Сожалею.

Редактировать: Больше googling и я нашел a sample from Nathan Dinsmore on GitHub that doesn't use C rather it uses JavaScript, и хотя он не создает расширение .so, у него есть то, что кажется полным описанием создания расширения. Он также предоставляет пару tutorials.

Редактировать ++: And here is another sample written in Java.

+1

Я думаю, что мы говорим о двух разных вещах. Видимая страница Wiki, с которой вы связаны, похоже, для чего-то другого, кроме текстовый редактор Scratch. Я думаю, что вы связаны с языком программирования Scratch. Образцы, к которым вы привязались, являются расширениями для языка скреста. Я думаю, это меня так запутывает, нет ресурсов для _making extensions ** для ** th e Scratch Text Editor_. – uSeRnAmEhAhAhAhAhA

+0

Есть два царапины. Там Scratch текстовый редактор, который поставляется с Linux распределения элементарной операционной системы, а затем есть Scratch; язык программирования. Я ищу ресурсы для первого. – uSeRnAmEhAhAhAhAhA

+0

Я не могу использовать информацию, содержащуюся на тех страницах, на которые вы ссылались, потому что для создания расширения Scratch (которые написаны на языке Vala не C или C++) вы не создаете исполняемые файлы, вы просто сохраняете их как .vala-файлы. И этот учебник опирается на исполняемые файлы. Я следил за учебником, но невозможно создать файл .so, потому что у меня нет исполняемого файла (вы не создаете исполняемые файлы для расширений текстового редактора Scratch) – uSeRnAmEhAhAhAhAhA

2

Я думаю, что The Vala tutorial может быть полезным в создании фактической разделяемой библиотеке или Shared Object.

Вы можете использовать autotools, cmake или вы можете собрать и связать общую библиотеку непосредственно из командной строки, цитата из Вала учебника:

компиляции и компоновки с помощью командной строки

Вала еще не способные напрямую создавать динамические или статические библиотеки . Чтобы создать библиотеку, перейдите к -c (только для компиляции) и свяжите объектные файлы с вашим любимым компоновщиком, то есть libtool или ar.

$ valac -c ...(source files) 
$ ar cx ...(object files) 

или путем составления промежуточного кода C с GCC

$ valac -C ...(source files) 
$ gcc -o my-best-library.so --shared -fPIC ...(compiled C code files)... 
+0

+1 В учебном пособии Вала описано, как это сделать. –

+1

Спасибо @user, я рассмотрю это. Это выглядит многообещающе! : -D +1 – uSeRnAmEhAhAhAhAhA

Смежные вопросы