我在我的系统上安装了 Cygwin 。但是当我尝试使用gcc
命令时,它说:
bash: gcc: command not found
有人能为我提供解决方案吗?
答案 0 :(得分:16)
在我的安装中,也没有通用的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。
答案 1 :(得分:4)
也许在安装Cygwin时你没有选择gcc,gdb和make packages。
我遇到了同样的问题,在我选择了上述软件包之后就解决了。
答案 2 :(得分:3)
这可能是因为您缺少编译器前缀。
默认情况下,大多数makefile都会查找gcc.exe
。如果您使用的是其他编译器,请说i686-pc-mingw32-gcc.exe
,那么make
除非您说明,否则不会找到它。你可以做点什么
PREFIX=i686-pc-mingw32-
make CC=${PREFIX}gcc
答案 3 :(得分:2)
有几件事:
我总是安装整个 Cygwin包。早期的版本遇到了现在修复的依赖性问题,我相信,但它仍然是一个好习惯。你永远不知道什么时候你可能需要最深奥的Cygwin。
您可能需要更改路径。如果您在Cygwin bash shell中运行,通常可以找到所有工具,但cmd.exe
不一定如此。
由于您的错误消息来自bash
本身,因此不太可能是最后一个,因此我非常确定您是如何运行它的。
请确保/usr/bin/gcc
内有bash
,并且您的路径包含/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
或主目录中的等效文件中更改路径。
答案 4 :(得分:0)
此处未提及的另一个相关问题是,命令行中编译器需要更新环境路径变量以查找c ++头文件的位置。在Windows中,您可以使用“高级系统属性”GUI更新路径环境,并添加c ++包含文件的位置。这将更新Windows cmd&中的PATH环境变量。 Cygwin在重新启动shell时自动运行。
从Linux或Cygwin shell类型更新PATH ... PATH = $ PATH:/ your_path_here示例:PATH = $ PATH:/cygdrive/c/cygwin/lib/gcc/i686-pc-mingw32/4.7。 3 / include / c ++同样最好只添加include目录: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 ++包含文件的路径,命令就可以正常工作。
答案 5 :(得分:0)
另一个难以发现的错误也可能导致此错误,
如果您的Makefile使用PATH
作为变量,则可能会发生gcc not found
错误
这是因为它会暂时更改系统路径。
我花了很多时间检查cygwin环境设置以发现这一点,所以我将它留在这里,以防这有助于任何人在这里找到他们的方式。