flutter_ecommerce_app icon indicating copy to clipboard operation
flutter_ecommerce_app copied to clipboard

可以在git-bash中用吗?

Open lyonscott opened this issue 5 years ago • 13 comments

我在Git/etc/bash.bashrc里加了 eval "$(lua /tools/z.lua --init bash)"

然后开cmder的bash模式,或者git自带的都报

@echo: command not found 
bash: setlocal: command not found 
bash: eval: line 78: syntax error near unexpected to ken `(' 
bash: eval: line 78: `if /i not "%_ZL_LUA_EXE%"=="" ('

lyonscott avatar Nov 12 '20 05:11 lyonscott

当然可以用,问题你要用 git-bash 里面的 lua,怎么能用 windows 的 lua 呢?你莫非想在 git-bash 这种 msys2 环境中用一个 windows 版本的 lua 解释器么?路径规格都不一样,你怎么用?

你自己找个为 git-bash 做的 lua,或者到 msys2 里自己编译一个 git-bash 可以用的 lua 就行。

skywind3000 avatar Nov 12 '20 07:11 skywind3000

是mingw编译出来的lua,还是有问题,后来换成wsl就可以用了- -哈哈哈

lyonscott avatar Nov 13 '20 17:11 lyonscott

要 msys2 编译出来的 lua,不是 mingw 编译出来的,后者是 win32 环境的程序,前者才是 msys2 环境的程序

skywind3000 avatar Nov 15 '20 09:11 skywind3000

@skywind3000 @lyonscott 试了一下确实需要自己编译一个,花了点功夫编了个 lua, luajit 的包,有 pacman 的 git-sdk 下载下来直接 pacman -U ./xxx.tar.zst 安装,没有的手动解压到 git 软件根目录,需要的自取。地址

zeromake avatar Aug 19 '21 06:08 zeromake

其实不需要这么麻烦的

其实出现该问题的原因,在安装Git Bash的过程中,就给出了说明提示。对于 Windows命令/交互式命令 需要在其前加"winpty";如果不添加,则会出现无响应现象

winpty lua就可以了

hyxdxhb123 avatar Aug 26 '22 14:08 hyxdxhb123

用的这个 lua 还是不行。msys2mingw 的程序是什么区别呀?

$ pacman -Qo lua.exe
/ucrt64/bin/lua.exe is owned by mingw-w64-ucrt-x86_64-lua 5.4.4-1

包的名字有 mingw- 前缀意思就是这其实是 windows 的程序么

zjiekai avatar Jan 29 '23 02:01 zjiekai

必须要用 msys 的 lua,你的 git-bash 是 msys2 环境,mingw/clang 环境都是纯 windows 的,他们的 lua 不认识 msys2 路径,不能用。

skywind3000 avatar Jan 29 '23 08:01 skywind3000

必须要用 msys 的 lua,你的 git-bash 是 msys2 环境,mingw/clang 环境都是纯 windows 的,他们的 lua 不认识 msys2 路径,不能用。

msys2+zsh(pacman 安装的5.9版本) 我编译时使用的是msys2上pacman安装的make pacman的数据库中显示的版本信息: msys/make 4.4.1-2 [已安装] GNU make utility to maintain groups of programs

make --version输出: GNU Make 4.4.1 为 x86_64-pc-msys 编译 Copyright (C) 1988-2023 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later https://gnu.org/licenses/gpl.html This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

在下载的lua-5.4.6下直接使用make后报错如下,没有可用于msys的构建规则。 make[1]: 进入目录“/downloads/Compressed/lua-5.4.6/src” Guessing MSYS_NT-10.0-22635 make[2]: 进入目录“/downloads/Compressed/lua-5.4.6/src” make[2]: *** 没有规则可制作目标“MSYS_NT-10.0-22635”。 停止。 make[2]: 离开目录“/downloads/Compressed/lua-5.4.6/src” make[1]: *** [Makefile:99:guess] 错误 2 make[1]: 离开目录“/downloads/Compressed/lua-5.4.6/src” make: *** [Makefile:55:guess] 错误 2 image

当然我也尝试了构建mingw generic c89的版本,但是在运行z.lua时都和直接下载的二进制的windows版的lua一样出错 make mingw/generic编译版本报错信息(和直接下载二进制l版一样): (eval):76: parse error near `/f'

make c89编译报错信息: @echo off setlocal EnableDelayedExpansion D:\Users\witty\Downloads\Compressed\lua-5.4.6\src\lua.exe: ./z.lua:287: 'popen' not supported stack traceback: [C]: in function 'io.popen' ./z.lua:287: in function 'os.call' ./z.lua:506: in function <./z.lua:496> (...tail calls...) ./z.lua:2790: in function 'z_windows_init' ./z.lua:2004: in function 'main' ./z.lua:2856: in main chunk [C]: in ? 所以到底如何构建msys2版本的lua呢?看样子官方的lua源码并未提供msys的构建规则。

wit-l avatar Apr 07 '24 15:04 wit-l

@WittyCo 我上面直接有编译好的版本 https://github.com/zeromake/msys2-packages/tree/master

zeromake avatar Apr 07 '24 16:04 zeromake

@WittyCo 我上面直接有编译好的版本 https://github.com/zeromake/msys2-packages/tree/master

知道了,之前试过你的,但是因为不知道git lfs,直接下载下来没法用,现在会用了。感谢!但还是想问一下,你的lua是怎么编译的啊?不用make吗?

wit-l avatar Apr 08 '24 07:04 wit-l

@WittyCo 我上面直接有编译好的版本 https://github.com/zeromake/msys2-packages/tree/master

知道了,之前试过你的,但是因为不知道git lfs,直接下载下来没法用,现在会用了。感谢!但还是想问一下,你的lua是怎么编译的啊?不用make吗?

之前处理过 lua 编译看了 makefile 发现用 bsd 模式就可以编译了。

> make bsd

zeromake avatar Apr 08 '24 07:04 zeromake

make posix

skywind3000 avatar Apr 08 '24 07:04 skywind3000

@skywind3000 @zeromake make bsd和posix我都试过了,都可以。其实我昨天也试过,但是因为当时把windows的环境变量全部导入msys了,导致编译时滥用库,还有很多库文件和可执行文件都找不到,今天关掉了继承windows环境变量的选项就好了。感谢!

wit-l avatar Apr 08 '24 08:04 wit-l