为啥 Git Bash 不能运行我的可执行文件?
Posted
技术标签:
【中文标题】为啥 Git Bash 不能运行我的可执行文件?【英文标题】:Why can't Git Bash run my executable?为什么 Git Bash 不能运行我的可执行文件? 【发布时间】:2015-06-30 13:26:30 【问题描述】:我在git-for-windows Git Bash。我无法在命令行上运行可执行文件:
Pedr@Abc-07 MINGW64 /c/dev
$ ls sqlite3.exe
sqlite3.exe*
Pedr@Abc-07 MINGW64 /c/dev
$ sqlite3
bash: sqlite3: command not found
为什么会这样?
【问题讨论】:
【参考方案1】:要在 bash 中运行当前目录中的程序,请将 ./
放在它前面。所以在你的情况下:
$ ./sqlite3.exe
当您运行sqlite3
时,bash 将在PATH
环境变量的所有目录中查找具有该名称的程序,默认情况下,该程序包括/usr/local/bin
等可执行文件的标准位置,但不包括您的当前目录。 See here 了解更多信息。
【讨论】:
谢谢。我习惯于从 msysgit Git bash 中做到这一点。 不敢相信我自己没有弄清楚这一点。我很愚蠢的东西。谢谢。 也适用于 Linux 的 Windows 子系统中的 bash【参考方案2】:这是因为您在 gcc 的运行时环境下,它支持 Windows 下的原生二进制文件,但您可以使用 ./(本地执行)将任何 exe 作为 shell 运行 查看此工具的文档:http://sourceforge.net/p/mingw-w64/wiki2/FAQ/
【讨论】:
【参考方案3】:您的 PATH 缺少 ./
。将其添加到主目录 (/c/Users/username
) 中的 .profile
文件中:
$ cd
$ pwd
/c/Users/username
$ echo 'PATH=$PATH:./' >> .profile
重新启动 bash 会话,瞧!现在echo $PATH
应该输出:./
作为最后一项。请注意,为了安全起见,您绝对需要将其添加为最后一个项(例如,防止恶意ls.exe
)。
【讨论】:
以上是关于为啥 Git Bash 不能运行我的可执行文件?的主要内容,如果未能解决你的问题,请参考以下文章
为啥 Spring 项目的导出的可运行 JAR 不能在另一个系统中工作?
Linux - 为啥我的可执行文件将 libpthread 作为共享库?
为啥这个 C 语言中的 SIMD 示例代码可以用 minGW 编译,但可执行文件不能在我的 Windows 机器上运行?