【发布时间】:2018-10-09 01:05:54
【问题描述】:
我已经在我的系统上安装了 Cygwin。但是当我尝试使用gcc 命令时,它会说:
bash: gcc: command not found
谁能给我解决办法,好吗?
【问题讨论】:
我已经在我的系统上安装了 Cygwin。但是当我尝试使用gcc 命令时,它会说:
bash: gcc: command not found
谁能给我解决办法,好吗?
【问题讨论】:
在我的安装中也没有通用的gcc 命令,所以我为它创建了一个符号链接:
cd /usr/bin
ln -s i686-pc-cygwin-gcc-3.4.4.exe gcc
现在通过执行which gcc 检查它是否有效,这应该给你/usr/bin/gcc,然后gcc 应该给你gcc: no input files。请注意,您的 i686-pc-cygwin-gcc-3.4.4.exe 版本可能不同。签入 /usr/bin 以获取它。
【讨论】:
可能在安装 Cygwin 的过程中你没有选择 gcc、gdb 和 make 包。
我遇到了同样的问题,在我选择了上面提到的包后解决了。
【讨论】:
有几点:
我总是安装整个 Cygwin 软件包。我相信,早期版本的依赖关系现在已修复,但这仍然是一个好习惯。你永远不知道什么时候你可能需要最深奥的 Cygwin。
您可能需要更改路径。如果您在 Cygwin bash shell 中运行,通常可以找到所有工具,但 cmd.exe 不一定是这种情况。
这不太可能是最后一个,因为您的错误消息来自 bash 本身,所以我很确定您就是这样运行它的。
查看以确保您在bash 中拥有/usr/bin/gcc,并且您的路径在某处包含/usr/bin:
pax> echo $PATH
/usr/local/bin:/usr/bin:/bin:/cygdrive/c/WINDOWS/system32:/cygdrive/c/WINDOWS
pax> which gcc
/usr/bin/gcc
如果不存在,请返回并重新安装所有内容(或者如果您不想要所有内容,请重新安装相关的开发包)。如果它在那里并且您的路径没有它的位置,请在 /etc/profile 或您的主目录中的等效路径中更改您的路径。
【讨论】:
此处未提及的另一个相关问题是,编译器需要从命令行更新环境路径变量以查找 c++ 头文件的位置。在 Windows 中,您可以使用“高级系统属性”GUI 更新路径环境并添加 c++ 包含文件的位置。这将在重新启动 shell 时自动更新 Windows cmd 和 Cygwin 中的 PATH 环境变量。
要从 Linux 或 Cygwin shell 更新您的 PATH 类型... PATH=$PATH:/your_path_here 示例:PATH=$PATH:/cygdrive/c/cygwin/lib/gcc/i686-pc-mingw32/4.7。 3/include/c++ 也可以只添加包含目录:PATH=$PATH:/cygdrive/c/cygwin/lib/gcc/i686-pc-mingw32/4.7.3/include/ ...或检查安装的包含文件位置的正确目录,我建议安装 mingw 以与 Cygwin 一起使用,它是用 g++ 调用的。
要在 Cygwin 中安装其他所需的软件包,请重新运行 Cygwin 安装实用程序并检查从 Internet 安装以从 Web 存储库添加软件包并添加 mingw-gcc-g++ 和 mingw-binutils。编译你的代码: g++ hello.cpp -o hello
如果使用 gcc 实用程序而不是使用以下命令进行编译:gcc hello.cpp -o hello -lstdc++ ... 以获取您的可执行文件。
只要您安装了 gcc 或 mingw 并且 c++ 包含文件的路径在您的路径环境中,这些命令就可以工作。
【讨论】:
还有一个难以发现的错误也可能导致此错误,
如果您的 Makefile 使用 PATH 作为变量,则可能会发生 gcc not found 错误。
这是因为它临时改变了系统路径。
我花了很多时间检查 cygwin 环境设置来发现这一点,所以我将把它留在这里以防万一这有助于任何人在这里找到他们的方式。
【讨论】: