waruqi / tboox.github.io

The Website for the TBOOX Open Source Project!
http://www.tboox.org
MIT License
2 stars 1 forks source link

LTUI v1.1, 一个基于lua的跨平台字符终端UI界面库 #103

Open waruqi opened 5 years ago

waruqi commented 5 years ago

https://tboox.org/cn/2018/11/28/ltui-v1.1/

简介LTUI是一个基于lua的跨平台字符终端UI界面库。此框架源于xmake中图形化菜单配置的需求,类似linux kernel的menuconf去配置编译参数,因此基于curses和lua实现了一整套跨平台的字符终端ui库。而样式风格基本上完全参照的kconfig-frontends,当然用户也可以自己定制不同...

Uewdl commented 5 years ago

在windwos下编译出来后貌似有问题。 failed

waruqi commented 5 years ago

@Uewdl 在windwos下编译出来后貌似有问题。 failed

已修复,你重新更新下代码编译后试试。。

Uewdl commented 5 years ago

@waruqi

@Uewdl 在windwos下编译出来后貌似有问题。 failed

已修复,你重新更新下代码编译后试试。。

好的😄

xiawenq commented 5 years ago

你好,没明白这个是什么错误,是不是我配置出问题了? pi@raspberrypi:~/git/tbox/ltui $ xmake run test dialog /usr/bin/lua: error loading module 'ltui.lcurses' from file './build/libltui.so': ./build/libltui.so: undefined symbol: lua_pcallk stack traceback:

[C]: in function 'require'
./src/ltui/curses.lua:31: in main chunk
[C]: in function 'require'
./src/ltui/application.lua:30: in main chunk
[C]: in function 'require'
./src/ltui.lua:31: in main chunk
[C]: in function 'require'
tests/dialog.lua:27: in main chunk
[C]: ?

error: execv(/usr/bin/lua tests/dialog.lua) failed(1)! pi@raspberrypi:~/git/tbox/ltui $ lua tests/dialog.lua lua: error loading module 'ltui.lcurses' from file './build/libltui.so': ./build/libltui.so: undefined symbol: lua_pcallk stack traceback:

[C]: in function 'require'
./src/ltui/curses.lua:31: in main chunk
[C]: in function 'require'
./src/ltui/application.lua:30: in main chunk
[C]: in function 'require'
./src/ltui.lua:31: in main chunk
[C]: in function 'require'
tests/dialog.lua:27: in main chunk
[C]: ?

pi@raspberrypi:~/git/tbox/ltui $

环境:raspberrypi lua5.1.5

waruqi commented 5 years ago

@lazyxwq 你好,没明白这个是什么错误,是不是我配置出问题了? pi@raspberrypi:~/git/tbox/ltui $ xmake run test dialog /usr/bin/lua: error loading module 'ltui.lcurses' from file './build/libltui.so': ./build/libltui.so: undefined symbol: lua_pcallk stack traceback:

C: in function 'require' ./src/ltui/curses.lua:31: in main chunk C: in function 'require' ./src/ltui/application.lua:30: in main chunk C: in function 'require' ./src/ltui.lua:31: in main chunk C: in function 'require' tests/dialog.lua:27: in main chunk

error: execv(/usr/bin/lua tests/dialog.lua) failed(1)! pi@raspberrypi:~/git/tbox/ltui $ lua tests/dialog.lua lua: error loading module 'ltui.lcurses' from file './build/libltui.so': ./build/libltui.so: undefined symbol: lua_pcallk stack traceback:

C: in function 'require' ./src/ltui/curses.lua:31: in main chunk C: in function 'require' ./src/ltui/application.lua:30: in main chunk C: in function 'require' ./src/ltui.lua:31: in main chunk C: in function 'require' tests/dialog.lua:27: in main chunk

pi@raspberrypi:~/git/tbox/ltui $

环境:raspberrypi lua5.1.5

应该是版本不匹配问题,编译的时候 默认用的是lua 5.3的头文件,你运行环境确实 5.1的。。你可以修改下 xmake.lua 里面配置 add_requires("lua") 改成 add_requires("lua 5.1.x") 强制使用5.1的头文件

然后执行下

xmake require --uninstall lua
xmake f -c
xmake

先卸载掉之前xmake内部安装的lua(不影响系统环境),然后清下缓存配置后,重新使用5.1的进行编译

xiawenq commented 5 years ago

@waruqi

@lazyxwq 你好,没明白这个是什么错误,是不是我配置出问题了? pi@raspberrypi:~/git/tbox/ltui $ xmake run test dialog /usr/bin/lua: error loading module 'ltui.lcurses' from file './build/libltui.so': ./build/libltui.so: undefined symbol: lua_pcallk stack traceback:

[C]: in function 'require'
./src/ltui/curses.lua:31: in main chunk
[C]: in function 'require'
./src/ltui/application.lua:30: in main chunk
[C]: in function 'require'
./src/ltui.lua:31: in main chunk
[C]: in function 'require'
tests/dialog.lua:27: in main chunk
[C]: ?

error: execv(/usr/bin/lua tests/dialog.lua) failed(1)! pi@raspberrypi:~/git/tbox/ltui $ lua tests/dialog.lua lua: error loading module 'ltui.lcurses' from file './build/libltui.so': ./build/libltui.so: undefined symbol: lua_pcallk stack traceback:

[C]: in function 'require'
./src/ltui/curses.lua:31: in main chunk
[C]: in function 'require'
./src/ltui/application.lua:30: in main chunk
[C]: in function 'require'
./src/ltui.lua:31: in main chunk
[C]: in function 'require'
tests/dialog.lua:27: in main chunk
[C]: ?

pi@raspberrypi:~/git/tbox/ltui $

环境:raspberrypi lua5.1.5

应该是版本不匹配问题,编译的时候 默认用的是lua 5.3的头文件,你运行环境确实 5.1的。。你可以修改下 xmake.lua 里面配置 add_requires("lua") 改成 add_requires("lua 5.1.x") 强制使用5.1的头文件

然后执行下

xmake require --uninstall lua
xmake f -c
xmake

先卸载掉之前xmake内部安装的lua(不影响系统环境),然后清下缓存配置后,重新使用5.1的进行编译

ltui目录下的xmake.lua没有add_requires("lua")这句话。加上这句话仍然会提示要求下载lua5.3.5进行编译。

waruqi commented 5 years ago

@lazyxwq

@waruqi

@lazyxwq 你好,没明白这个是什么错误,是不是我配置出问题了? pi@raspberrypi:~/git/tbox/ltui $ xmake run test dialog /usr/bin/lua: error loading module 'ltui.lcurses' from file './build/libltui.so': ./build/libltui.so: undefined symbol: lua_pcallk stack traceback:

C: in function 'require' ./src/ltui/curses.lua:31: in main chunk C: in function 'require' ./src/ltui/application.lua:30: in main chunk C: in function 'require' ./src/ltui.lua:31: in main chunk C: in function 'require' tests/dialog.lua:27: in main chunk

error: execv(/usr/bin/lua tests/dialog.lua) failed(1)! pi@raspberrypi:~/git/tbox/ltui $ lua tests/dialog.lua lua: error loading module 'ltui.lcurses' from file './build/libltui.so': ./build/libltui.so: undefined symbol: lua_pcallk stack traceback:

C: in function 'require' ./src/ltui/curses.lua:31: in main chunk C: in function 'require' ./src/ltui/application.lua:30: in main chunk C: in function 'require' ./src/ltui.lua:31: in main chunk C: in function 'require' tests/dialog.lua:27: in main chunk

pi@raspberrypi:~/git/tbox/ltui $

环境:raspberrypi lua5.1.5

应该是版本不匹配问题,编译的时候 默认用的是lua 5.3的头文件,你运行环境确实 5.1的。。你可以修改下 xmake.lua 里面配置 add_requires("lua") 改成 add_requires("lua 5.1.x") 强制使用5.1的头文件

然后执行下

xmake require --uninstall lua
xmake f -c
xmake

先卸载掉之前xmake内部安装的lua(不影响系统环境),然后清下缓存配置后,重新使用5.1的进行编译

ltui目录下的xmake.lua没有add_requires("lua")这句话。加上这句话仍然会提示要求下载lua5.3.5进行编译。

在 src/core/xmake.lua 里面

xiawenq commented 5 years ago

@waruqi

@lazyxwq

@waruqi

@lazyxwq 你好,没明白这个是什么错误,是不是我配置出问题了? pi@raspberrypi:~/git/tbox/ltui $ xmake run test dialog /usr/bin/lua: error loading module 'ltui.lcurses' from file './build/libltui.so': ./build/libltui.so: undefined symbol: lua_pcallk stack traceback:

[C]: in function 'require'
./src/ltui/curses.lua:31: in main chunk
[C]: in function 'require'
./src/ltui/application.lua:30: in main chunk
[C]: in function 'require'
./src/ltui.lua:31: in main chunk
[C]: in function 'require'
tests/dialog.lua:27: in main chunk
[C]: ?

error: execv(/usr/bin/lua tests/dialog.lua) failed(1)! pi@raspberrypi:~/git/tbox/ltui $ lua tests/dialog.lua lua: error loading module 'ltui.lcurses' from file './build/libltui.so': ./build/libltui.so: undefined symbol: lua_pcallk stack traceback:

[C]: in function 'require'
./src/ltui/curses.lua:31: in main chunk
[C]: in function 'require'
./src/ltui/application.lua:30: in main chunk
[C]: in function 'require'
./src/ltui.lua:31: in main chunk
[C]: in function 'require'
tests/dialog.lua:27: in main chunk
[C]: ?

pi@raspberrypi:~/git/tbox/ltui $

环境:raspberrypi lua5.1.5

应该是版本不匹配问题,编译的时候 默认用的是lua 5.3的头文件,你运行环境确实 5.1的。。你可以修改下 xmake.lua 里面配置 add_requires("lua") 改成 add_requires("lua 5.1.x") 强制使用5.1的头文件

然后执行下

xmake require --uninstall lua
xmake f -c
xmake

先卸载掉之前xmake内部安装的lua(不影响系统环境),然后清下缓存配置后,重新使用5.1的进行编译

ltui目录下的xmake.lua没有add_requires("lua")这句话。加上这句话仍然会提示要求下载lua5.3.5进行编译。

在 src/core/xmake.lua 里面

在src/core/xmake.lua中指定lua版本后,再在ltui根目录下执行xmake require --uninstall lua xmake f -c xmake 到xmake的时候提示找不到头文件,

pi@raspberrypi:~/git/tbox/ltui $ xmake
[  0%]: ccache compiling.release src/core/lcurses/lcurses.c
error: src/core/lcurses/lcurses.c:69:21: fatal error: luaconf.h: No such file or directory
 #include "luaconf.h"
                     ^
compilation terminated.
waruqi commented 5 years ago

@lazyxwq

@waruqi

@lazyxwq

@waruqi

@lazyxwq 你好,没明白这个是什么错误,是不是我配置出问题了? pi@raspberrypi:~/git/tbox/ltui $ xmake run test dialog /usr/bin/lua: error loading module 'ltui.lcurses' from file './build/libltui.so': ./build/libltui.so: undefined symbol: lua_pcallk stack traceback:

C: in function 'require' ./src/ltui/curses.lua:31: in main chunk C: in function 'require' ./src/ltui/application.lua:30: in main chunk C: in function 'require' ./src/ltui.lua:31: in main chunk C: in function 'require' tests/dialog.lua:27: in main chunk

error: execv(/usr/bin/lua tests/dialog.lua) failed(1)! pi@raspberrypi:~/git/tbox/ltui $ lua tests/dialog.lua lua: error loading module 'ltui.lcurses' from file './build/libltui.so': ./build/libltui.so: undefined symbol: lua_pcallk stack traceback:

C: in function 'require' ./src/ltui/curses.lua:31: in main chunk C: in function 'require' ./src/ltui/application.lua:30: in main chunk C: in function 'require' ./src/ltui.lua:31: in main chunk C: in function 'require' tests/dialog.lua:27: in main chunk

pi@raspberrypi:~/git/tbox/ltui $

环境:raspberrypi lua5.1.5

应该是版本不匹配问题,编译的时候 默认用的是lua 5.3的头文件,你运行环境确实 5.1的。。你可以修改下 xmake.lua 里面配置 add_requires("lua") 改成 add_requires("lua 5.1.x") 强制使用5.1的头文件

然后执行下

xmake require --uninstall lua
xmake f -c
xmake

先卸载掉之前xmake内部安装的lua(不影响系统环境),然后清下缓存配置后,重新使用5.1的进行编译

ltui目录下的xmake.lua没有add_requires("lua")这句话。加上这句话仍然会提示要求下载lua5.3.5进行编译。

在 src/core/xmake.lua 里面

在src/core/xmake.lua中指定lua版本后,再在ltui根目录下执行xmake require --uninstall lua xmake f -c xmake 到xmake的时候提示找不到头文件,

pi@raspberrypi:~/git/tbox/ltui $ xmake
[  0%]: ccache compiling.release src/core/lcurses/lcurses.c
error: src/core/lcurses/lcurses.c:69:21: fatal error: luaconf.h: No such file or directory
 #include "luaconf.h"
                     ^
compilation terminated.

有没有提示你重新安装lua 5.1.5版本,没有的话,你可以删掉当前目录下 .xmake 后在执行 xmake f -c试试

waruqi commented 5 years ago

大家有使用上的相关问题,请尽量到 https://github.com/tboox/ltui/issues 上去反馈吧

xiawenq commented 5 years ago

没有要求提示重装lua 5.1,删除ltui目录下的.xmake也不行,同样的错误。

waruqi commented 5 years ago

@lazyxwq 你执行下 xmake l lib.detect.find_package lua 我看下

xiawenq commented 5 years ago

@waruqi 日志如下

pi@raspberrypi:~/git/tbox/ltui $ xmake l lib.detect.find_package lua

pi@raspberrypi:~/git/tbox/ltui $ rm .xmake/ -rf
pi@raspberrypi:~/git/tbox/ltui $ 
pi@raspberrypi:~/git/tbox/ltui $ 
pi@raspberrypi:~/git/tbox/ltui $ xmake l lib.detect.find_package lua

pi@raspberrypi:~/git/tbox/ltui $ 
pi@raspberrypi:~/git/tbox/ltui $ xmake f -c
checking for the architecture ... armv6
pi@raspberrypi:~/git/tbox/ltui $ xmake
[  0%]: ccache compiling.release src/core/lcurses/lcurses.c
error: src/core/lcurses/lcurses.c:69:21: fatal error: luaconf.h: No such file or directory
 #include "luaconf.h"
                     ^
compilation terminated.
pi@raspberrypi:~/git/tbox/ltui $ 
waruqi commented 5 years ago

@waruqi 哦 你这是 arm的,我好久没测了,回头我先调下 再跟你反馈。

waruqi commented 5 years ago

@lazyxwq 我看了下 包管理这块确实刚弄完,还有很多细节问题,你可以尝试

rm ~/.xmake/cache
rm ~/.xmake/installed 
rm -rf .xmake
xmake f -c

移除本地和全局缓存后,在尝试下 xmake f -c 试试,回头我再改进下包管理。。

xiawenq commented 5 years ago

@waruqi 很奇怪,还是不行。

pi@raspberrypi:~/git/tbox/ltui $ ls
build  CHANGELOG.md  CODE_OF_CONDUCT.md  CONTRIBUTING.md  LICENSE.md  NOTICE.md  README.md  README_zh.md  rockspec  src  tests  xmake.lua
pi@raspberrypi:~/git/tbox/ltui $ rm ~/.xmake/cache/ -rf
pi@raspberrypi:~/git/tbox/ltui $ rm ~/.xmake/installed/ -rf
pi@raspberrypi:~/git/tbox/ltui $ rm -rf .xmake/ -rf
pi@raspberrypi:~/git/tbox/ltui $ ls
build  CHANGELOG.md  CODE_OF_CONDUCT.md  CONTRIBUTING.md  LICENSE.md  NOTICE.md  README.md  README_zh.md  rockspec  src  tests  xmake.lua
pi@raspberrypi:~/git/tbox/ltui $ xmake f -c
checking for the architecture ... armv6
pi@raspberrypi:~/git/tbox/ltui $ xmake
[  0%]: ccache compiling.release src/core/lcurses/lcurses.c
error: src/core/lcurses/lcurses.c:69:21: fatal error: luaconf.h: No such file or directory
 #include "luaconf.h"
                     ^
compilation terminated.
pi@raspberrypi:~/git/tbox/ltui $ 

能简单说明一下是哪里的旧缓存没有清理干净导致的么?

waruqi commented 5 years ago

@lazyxwq 应该就是这几个cache地方了,我改进了下xmake,你更新下 xmake update dev后,再xmake f -c; xmake 编译下试试

还不行的话,这个时候执行下 xmake require -l 给我看下输出