请分享您喜欢的语言链接,以便学习最好的语言.
而且,请用几句话来描述这种语言最重要的特征,它与其他语言如Lua不同.
我只是无法理解为什么重新发明另一个Lua/Python /等.也许我只是错过了一些东西......
但是我喜欢性能+脚本的想法,所以我必须理解它!
我一直在研究这个问题几个月,现在想要真正想出一个适当的解决方案来处理用成员函数/创建新的用户定义类(以及那些类的实例)的情况C++ 11项目中运行时的属性.
到目前为止,我一直在使用SWIG(以前使用Python,现在使用Lua,探索Squirrel).就像我到目前为止遇到的所有C++绑定/嵌入库(Luna*,luabinder,luabind,OOLua,Sqrat/Sqext,Squall)一样,所有人都希望在代码执行之前用C++预定义类,因为它们要么依赖于预处理器指令或模板.
所以我的问题是,是否有任何库使用更程序化的方法来包装语言,或者是否有任何像Lua或Squirrel这样的好的教程/示例,建议用于处理自定义类的创建有自定义成员和功能?一些方向将不胜感激.
即使只是一个很好的例子,展示如何使用函数和属性创建一个自定义类,在Lua,Squirrel中,通过它们各自的C++ API而不使用宏/模板/动态生成的代码,将非常有用.
编辑:我已经创建了一个Instance包含std::vector成员键/值对的类,以及一个标识类型的成员,因此可以查找函数.但是,在没有使用静态代码的情况下,在Lua/Squirrel中创建简单类的文档很少.
编辑2:我想要一个适用于任何平台的解决方案,无需动态链接.
尝试通过npm run make在终端中运行来构建基于电子的应用程序,除了必须通过之外,一切都很顺利Making distributables。Out 文件夹已创建,但应用程序未捆绑在一个 exe 中。
Package.json 中的依赖项
"devDependencies": {
"@electron-forge/cli": "^6.0.3",
"@electron-forge/maker-deb": "^6.0.3",
"@electron-forge/maker-rpm": "^6.0.3",
"@electron-forge/maker-squirrel": "^6.0.3",
"@electron-forge/maker-zip": "^6.0.3",
"electron": "^6.1.12"
},
Run Code Online (Sandbox Code Playgroud)
module.exports = {
packagerConfig: {},
rebuildConfig: {},
makers: [
{
name: '@electron-forge/maker-squirrel',
config: {},
},
{
name: '@electron-forge/maker-zip',
platforms: ['darwin'],
},
{
name: '@electron-forge/maker-deb',
config: {},
},
{
name: '@electron-forge/maker-rpm',
config: {},
},
],
};
Run Code Online (Sandbox Code Playgroud)
完全错误我得到
任何解决方案吗?
我试图从Ogre3d渲染引擎中构建一个有用的3D游戏引擎,用于模拟我提出的一些想法,并且已经走到了一个十字路口.有许多脚本语言可供使用,我想知道是否有一个或两个被审查并有适当的跟随.
LUA和Squirrel似乎更受审查,但我对任何人都开放.
最好的情况是,如果有一种编译形式的语言用于分发和易于加载,那将是最好的.
每当我尝试编译我正在移植的iPhone应用程序时,我都会遇到链接错误.该应用程序使用一种名为Squirrel的脚本语言(通过SDK读取级别文件,没有用户输入).我链接了所有库,包括libsquirrel.a.我究竟做错了什么?(App是SuperTux,supertux.lethargik.org上的源代码,用于计算机版).
Line Location Tool:0: "__ZN9Scripting24create_squirrel_instanceEP4SQVMPNS_12AmbientSoundEb", referenced from:
Line Location Tool:0: "__ZN9Scripting24create_squirrel_instanceEP4SQVMPNS_12ThunderstormEb", referenced from:
Line Location Tool:0: "__ZN9Scripting24create_squirrel_instanceEP4SQVMPNS_13DisplayEffectEb", referenced from:
Line Location Tool:0: "__ZN9Scripting24create_squirrel_instanceEP4SQVMPNS_14ScriptedObjectEb", referenced from:
Line Location Tool:0: "__ZN9Scripting24create_squirrel_instanceEP4SQVMPNS_4TextEb", referenced from:
Line Location Tool:0: "__ZN9Scripting24create_squirrel_instanceEP4SQVMPNS_4WindEb", referenced from:
Line Location Tool:0: "__ZN9Scripting24create_squirrel_instanceEP4SQVMPNS_6CameraEb", referenced from:
Line Location Tool:0: "__ZN9Scripting24create_squirrel_instanceEP4SQVMPNS_6CandleEb", referenced from:
Line Location Tool:0: "__ZN9Scripting24create_squirrel_instanceEP4SQVMPNS_6PlayerEb", referenced from:
Line Location Tool:0: "__ZN9Scripting24create_squirrel_instanceEP4SQVMPNS_7SSectorEb", referenced from:
Line Location Tool:0: "__ZN9Scripting24create_squirrel_instanceEP4SQVMPNS_7TileMapEb", referenced from:
Line Location Tool:0: "__ZN9Scripting24create_squirrel_instanceEP4SQVMPNS_8PlatformEb", referenced from:
Line Location Tool:0: "__ZN9Scripting24create_squirrel_instanceEP4SQVMPNS_9LevelTimeEb", referenced from:
Line …Run Code Online (Sandbox Code Playgroud) 我在我的松鼠代码中调用一个简单的函数,但这似乎没有按预期工作.使用参数调用函数不会影响原始变量.'counter1'只保持相同的值.在javascript中这可行,所以为什么这不适用于Squirrel?
// declare test variable
counter1 <- 100;
function impLoop() {
// function call to update these variables - this is not working!
changeValue(counter1);
// this just displays the original value: 100
server.log("counter 1 is now " + counter1);
// schedule the loop to run again (this is an imp function)
imp.wakeup(1, impLoop);
}
function changeValue(val1){
val1 = val1+25;
// this displays 125, but the variable 'counter1' is not updated?
server.log("val1 is now " + val1);
}
Run Code Online (Sandbox Code Playgroud)