为啥 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 不能在另一个系统中工作?

为啥我不能从我的 python 脚本创建可执行文件?

Linux - 为啥我的可执行文件将 libpthread 作为共享库?

为啥我的可执行文件大小从 780K 增加到 1.1MB?

QProcess 附加到从脚本运行的可执行文件

为啥这个 C 语言中的 SIMD 示例代码可以用 minGW 编译,但可执行文件不能在我的 Windows 机器上运行?