我正在为Elementary OS Luna上的Scratch文本编辑器应用程序编写扩展。但是文档几乎不存在扩展创建,我不知道在编写扩展的主代码后如何继续。
我已经写了扩展名。我不能使用或测试它,因为它需要“安装”。我花了几个小时寻找文档,但它们不存在。不过,我确实在临时启动板页面上找到了评论
通常你必须生成一个pluginname.so文件并将其放入 带有pluginname.plugin文件的lib / scratch / plugins / pluginname
大。这似乎是为Scratch创建扩展的最后一部分。什么是.so文件,如何生成?我已经创建了其他必要的文件,如.plugin文件和.vala文件。
是的,我已经搜索了.so文件,但我发现的所有内容都是随机的,就像使用C或C ++标题一样,但显然这对我不起作用,因为我正在使用Vala?
如何生成.so文件?我从中生成什么?
答案 0 :(得分:2)
我认为The Vala tutorial可能有助于创建实际的共享库或共享对象。
您可以使用autotools
,cmake
,也可以直接从命令行编译和链接共享库,引用自Vala教程:
使用命令行进行编译和链接
Vala尚无法直接创建动态或静态 库。要创建库,请继续-c(仅编译) 切换并链接目标文件与您最喜欢的链接器,即 libtool或ar。
$ valac -c ...(source files) $ ar cx ...(object files)
或用gcc编译中间C代码
$ valac -C ...(source files) $ gcc -o my-best-library.so --shared -fPIC ...(compiled C code files)...
答案 1 :(得分:1)
由于浏览器安全限制,Scratch 2.0无法与之交互 硬件设备直接。相反,硬件扩展附带一个 帮助应用程序,用户必须安装和运行的单独应用程序 在他们的电脑上。 Scratch通过HTTP与帮助应用程序通信 请求,帮助应用程序与硬件进行通信。在将来, 一些扩展可能会将其帮助应用程序打包为浏览器插件。
以下是创建和测试Scratch扩展的步骤:
- 创建扩展程序描述文件
- 创建帮助应用并启动它
- 打开Scratch 2离线编辑器
- 导入扩展程序说明(按住Shift键并单击“文件”,然后从菜单中选择“导入实验扩展程序”)
- 新的扩展程序块将出现在更多块调色板
中- 测试你的扩展并迭代!
醇>Helper应用程序可以用支持服务器套接字的任何语言编写,例如Python,Node.js,Java,C等。
和你一样,我在wiki周围追逐,但是找不到源代码的例子。所以我所能做的就是一般地解决你的问题。
如果你看Build .so file from .c file using gcc command line,你会看到如何创建一个简单的.so。但是,我不知道什么代码进入Scratch扩展。遗憾。
编辑:更多谷歌搜索,我发现a sample from Nathan Dinsmore on GitHub that doesn't use C rather it uses JavaScript,虽然它没有创建.so扩展名,但它确实具有创建扩展名的完整描述。他还提供了几个tutorials。