gcc 为什么PATH变量在wsl中不能正常工作?

nbysray5  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(118)

我在wsl中配置PATH变量时遇到问题。
我安装了MinGW,我想在wsl终端中使用命令gcc。所以我把gcc.exe的路径放在. bashrc中。gcc.exe的路径出现在PATH变量中,但该命令不起作用。使用powershell,命令正常工作,因为我把gcc.exe的路径放在windows中。
我已经尝试了我在网上找到的所有解决方案,但没有一个有效。

felipe@Diana:/mnt/c/MinGW/bin$ gcc --version
Command 'gcc' not found, but can be installed with:
sudo apt install gcc
felipe@Diana:/mnt/c/MinGW/bin$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/wsl/lib:/mnt/c/Program Files (x86)/NVIDIA Corporation/PhysX/Common:/mnt/c/Program Files (x86)/Common Files/Oracle/Java/javapath:/mnt/c/Windows/system32:/mnt/c/Windows:/mnt/c/Windows/System32/Wbem:/mnt/c/Windows/System32/WindowsPowerShell/v1.0/:/mnt/c/Windows/System32/OpenSSH/:/mnt/d/Arquivos de Programas/Git/cmd:/mnt/c/Program Files/dotnet/:/mnt/c/Program Files/PostgreSQL/15/bin:/mnt/c/Program Files (x86)/dotnet/:/mnt/c/Program Files/nodejs/:/mnt/c/ProgramData/chocolatey/bin:/mnt/c/Users/Felipe/AppData/Local/Microsoft/WindowsApps:/mnt/c/Users/Felipe/AppData/Local/Programs/Microsoft VS Code/bin:/mnt/c/Users/Felipe/AppData/Roaming/npm:/mnt/c/MinGW/bin:/snap/bin:/mnt/c/Program Files/nodejs/:/mnt/c/MinGW/bin/
felipe@Diana:/mnt/c/MinGW/bin$ ls
addr2line.exe  gcc-ar.exe      ld.exe              libmpc-3.dll           mingw32-gcc-nm.exe      readelf.exe
ar.exe         gcc-nm.exe      libatomic-1.dll     libmpfr-4.dll          mingw32-gcc-ranlib.exe  size.exe
as.exe         gcc-ranlib.exe  libcharset-1.dll    libquadmath-0.dll      mingw32-gcc.exe         strings.exe
c++.exe        gcc.exe         libgcc_s_dw2-1.dll  libssp-0.dll           mingw32-make.exe        strip.exe
c++filt.exe    gcov-tool.exe   libgmp-10.dll       libstdc++-6.dll        mingwm10.dll            windmc.exe
cpp.exe        gcov.exe        libgomp-1.dll       mingw-get.exe          nm.exe                  windres.exe
dlltool.exe    gdb.exe         libiconv-2.dll      mingw32-c++.exe        objcopy.exe             zlib1.dll
dllwrap.exe    gdbserver.exe   libintl-8.dll       mingw32-g++.exe        objdump.exe
elfedit.exe    gprof.exe       libisl-15.dll       mingw32-gcc-6.3.0.exe  pthreadGC-3.dll
g++.exe        ld.bfd.exe      libmingwex-0.dll    mingw32-gcc-ar.exe     ranlib.exe
felipe@Diana:/mnt/c/MinGW/bin$ tail -n 3 ~/.bashrc
export PATH="$PATH:/mnt/c/Program Files/nodejs/"
export PATH="$PATH:/mnt/c/MinGW/bin/"

这不是我第一次遇到这个问题。当我通过浏览器安装node时,我也试图将它放在PATH中,但它不起作用。我不得不卸载它,并通过终端重新安装它才能工作。

des4xlb0

des4xlb01#

我发现了问题所在。PATH变量是正确的,命令行确实能够执行gcc,但是,它只在我键入gcc.exe时才起作用。看起来wsl在正确识别命令方面有问题,只有当你用“.exe”键入它时才能工作。
为了解决这个问题,我在.bashrc文件中添加了“alias gcc =“gcc.exe””。现在,对于我想添加到PATH变量的所有新命令,我还需要添加别名,以便它正常工作。

相关问题