节点精灵调试
- QQ群有VS Code插件,群文件如节点精灵vscode插件的使用.zip。
- 不会分析.vsix。
- 谷歌编辑 逆向 vsix 插件无果。
- 尝试Remote Debugging - ZeroBrane Studio - Lua IDE/editor/debugger for Windows, Mac OSX, and Linux
- IDE作为服务器端,应用端执行添加了mobdebug库入口的脚本,便链接到IDE了。
- 尝试print(require 'mobdebug')、print(require 'luasocket')、print(require 'socket')返回nil。
- 有C:\ProgramFiles\ZeroBraneStudio\lualibs\mobdebug\mobdebug.lua、有C:\ProgramFiles\ZeroBraneStudio\lualibs\socket.lua、有C:\ProgramFiles\ZeroBraneStudio\lualibs\socket文件夹(,其下有url.lua、http.lua等(,无tcp.lua))(,无提及的luasocket)。
- 通过getDir(),查看到/storage/emulated/0/freespace/scripts/test。
- socket在电脑上是ZeroBraneStudio\bin\clibs\socket,是.dll。
- Install LUA SOCKET LIBRARIES IN ANDROID 😎 - YouTube
- 手机端命令行终端操作,pkg clang/lua/luarock/lualib-dev,最终用luarock本地编译。
- lua安装失败,按推荐尝试了lua53;类似的,liblua-dev安装失败,按推荐尝试了liblua53(无lualib-dev53或lualib-dev或lualib53-dev,或liblua53-dev)
- luarock是安装失败,报错Unable to locate package luarocks。又尝试了几次成功了..
- 同时,无法在终端里使用命令lua运行,提示The program lua is not installed.需使用lua5.3(而非lua或lua53)。
- 但可能由于安装的lua53,是哦那个luarocks报错(路径)bad interpreter: No such file or directory。
- 需要root?
- Termux says "'Bad Interpreter: No such file or directory" - Stack Overflow
- termux中的路径不同于unix。
- Allow extra LDFLAGS: Useful for linking to Android by develCuy · Pull Request #182 · diegonehab/luasocket · GitHub(24 Feb 2019)
- 提供编译支持。
- termux/linux,使用pwd查看当前路径,使用ls列出当前路径下的文件、文件夹。
- data/data/com.termux/files/user下有bin,其下有各种库(含lua5.3)。
- bin下的是命令(而非文件夹),bin下无lua(而是lua5.3)
- 尝试使用ln lua5.3 lua(不可ln lua lua5.3,报错No such file or directory),报错Permission denied。
但可以ln -s lua5.3 lua,建立符号链接。ls中lua的显示颜色是蓝色,lua5.3是绿色。 - 在data/data/com.termux的上级目录无法ls了,提示Permission denied。
在(手机)系统中允许它的存储权限。
使用ls /sdcard/(,而非不断的cd ..) - ln [-s] mobdebug.lua ../libs/mobdebug.lua失败,failed to create hard/symbolic link '../libs/mobdebug.lua' => 'mobdebug.lua': Operation not premitted。
- 执行cd命令后面什么都不加,可以回到当前登录用户的宿主目录(data/data/com.termux/files/home)。
- 设置环境变量。分,为当前用户/会话,或全局。
ubuntu系统下关于环境变量的修改(转) - 风轻云淡 - C++博客 - etc下无profile或environment。
- ls -[a]l查看实际链接。
- 可以cd /storage/(参考getDir() of ns),可以遍历(其下有emulated,同getDir()返回的)(没有权限问题(可以cd到,但不能ls))。
- storage - Termux - How do I create a directory of files accessible outside of Termux? - Android Enthusiasts Stack Exchange
题主termux的内容,外部看不到,求解,有解。参考:Termux-setup-storage - Termux Wiki
Symlink to a Termux-private folder on external storage
- 在谷歌市场搜‘终端’第一个就是Termux。
- 命令:nnn-manage,nano/vim/emacs-edit。
- access servers over ssh。
- develop C in clang, make, gdb。
- phthon、git。
- apt package manager。
- 参见Package Management - Termux Wiki
-
Termux uses apt and dpkg for package management, similar to Ubuntu or Debian.
We strongly recommend to use a pkg utility instead of apt directly. It is a wrapper that performs a number of tasks: ..
- Lua环境变量:
- ns中查看path为/usr/local/share/lua/5.3/?.lua;/usr/local/share/lua/5.3/?/init.lua;/usr/local/lib/lua/5.3/?.lua;/usr/local/lib/lua/5.3/?/init.lua;./?.lua;./?/init.lua
- 手机lua中查看path为/data/data/com.termux/files/usr/share/lua/5.3/?.lua;data/data/com.termux/files/usr/share/lua/5.3/?/init.lua;/data/data/com.termux/files/usr/lib/lua/5.3/?.lua;/data/data/com.termux/files/usr/lib/lua/5.3/?/init.lua;./?.lua;./?/init.lua
- 相似地,ns中查看cpath为/usr/local/lib/lua/5.3/?.so;/usr/local/lib/lua/5.3/loadall.so;./?.so
- (在termux中)导航到/usr/下看不到/usr/local。
- ns中os.getenv'LUA_PATH'、os.getenv'LUA_CPATH'为空。
- 关于/usr/local见4.9. /usr/local : Local hierarchy
- 明明就在(termux)/usr/lib/lua/5.3/socket/core.so路径下,但ns无法访问,权限问题?(节点精灵允许存储了)
- termux能在/sdcard/中看见freespace(ns),但看不见自己(termux)。
- ns文件路径
- 文档中的文件读写示例,基于/sdcard/。
- 设置package.path不能写成
- getDir()为/storage/emulated/0/freespace/scripts/test。
- 不能使用相对路径。(用io.open验证)
- ns目前require函数异样(仅运行lua文档,不记录,不返回)。
- 尝试package.loadlib实现require。
- 参考Lua use package.loadlib or require link C code-阿里云开发者社区
-
MUSHclient documentation: contents
The specified module could not be found.、The specified procedure could not be found.,dependency checker。 -
MUSHclient documentation: contents
If a DLL is found it attempts to call the function "luaopen_" concatenated with the module name, where dots are replaced by underscores. -
Torch 7/Lua cannot require a .so file, but package.loadlib() can - Stack Overflow
load+initialize itself - 关于require和package.loadlib的介绍和它们的关系,以及它们在加载C模块时不同表现_AllenPocket的博客-CSDN博客
luaopen_<模块名>函数用于将模块中的对外函数通通注册到Lua中,并在栈中压入一个同模块名的table,供lua调用。 - 实现了个require
function require(modname)--modname if package.loaded[modname]~=nil then return package.loaded[modname] end local errorMessages={} for i,search in ipairs(package.searchers) do local loader,extra=search(modname) if type(loader)=='function' then local loaded=loader(modname,extra) if loaded~=nil then package.loaded[modname]=loaded elseif package.loaded[modname]==nil then package.loaded[modname]=true end return package.loaded[modname] else assert(loader==nil or type(loader)=='string') table.insert(errorMessages,loader) end end error(table.concat(errorMessages)) end
- 以上require 'socket.core'失败
error loading module 'socket.core' from file '/sdcard/freespace/scripts/libs/socket/core.so':
dynamic libraries not enabled; check your Lua installation - ns项目中,运行对应main.lua(不论当前激活的(项目中的)(.lua)文件)。
- ns中getDir()返回项目所在的目录(而非执行此函数的脚本所在的目录)。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?