linux PATH介绍
这句命令的作用是:把君正 X2600 的交叉编译器目录,临时加入 Linux 的命令搜索路径里。
你这句:
exportPATH=/home/vik/project/x2600/tools/toolchains/mips-xburst2-gcc720-glibc238/bin:$PATH可以拆开理解。
1.PATH是啥?
PATH是 Linux 里的一个环境变量。
它保存了一堆目录,Linux 执行命令时,会去这些目录里找程序。
比如你输入:
gccLinux 会在PATH里的目录挨个找:
/usr/local/bin /usr/bin /bin ...找到gcc后就执行。
你可以看当前 PATH:
echo"$PATH"2. 君正 SDK 需要啥?
你编 X2600 不是给电脑自己编程序,而是给君正 X2600 MIPS 芯片编程序。
所以不能只用普通的:
gcc而要用君正提供的交叉编译器,比如:
mips-linux-gnu-gcc mips-linux-gnu-ld mips-linux-gnu-objcopy这些工具在这个目录里:
/home/vik/project/x2600/tools/toolchains/mips-xburst2-gcc720-glibc238/bin3. 这句命令具体干了啥?
exportPATH=/home/vik/project/x2600/tools/toolchains/mips-xburst2-gcc720-glibc238/bin:$PATH意思是:
把 /home/vik/project/x2600/tools/toolchains/mips-xburst2-gcc720-glibc238/bin 加到 PATH 最前面加完以后,你输入:
mips-linux-gnu-gccLinux 就能找到它。
你可以验证:
whichmips-linux-gnu-gcc如果正常,应该输出类似:
/home/vik/project/x2600/tools/toolchains/mips-xburst2-gcc720-glibc238/bin/mips-linux-gnu-gcc再看版本:
mips-linux-gnu-gcc--version4. 为啥要放在$PATH前面?
注意这个写法:
新路径:$PATH表示把新路径放到最前面。
比如原来:
/usr/local/bin:/usr/bin:/bin执行后变成:
/home/vik/project/x2600/tools/toolchains/mips-xburst2-gcc720-glibc238/bin:/usr/local/bin:/usr/bin:/binLinux 找命令是从左到右找,所以会优先使用君正 SDK 自带的工具链。
这对嵌入式 SDK 很重要,因为不同版本工具链可能不兼容。
5.export又是啥?
如果只写:
PATH=/xxx/bin:$PATH只是当前 shell 变量变了。
加上:
exportPATH=...表示把这个变量导出给后续启动的程序。
比如你后面执行:
makemake里面再调用:
mips-linux-gnu-gcc它也能继承这个 PATH。
所以嵌入式编译前一般都要export PATH=工具链路径:$PATH。
6. 这个是临时生效还是永久生效?
这个命令只在当前终端窗口生效。
你关掉 WSL 终端,再打开,就没了。
如果想永久生效,可以加到:
~/.bashrc比如:
nano~/.bashrc最后加一行:
exportPATH=/home/vik/project/x2600/tools/toolchains/mips-xburst2-gcc720-glibc238/bin:$PATH保存后执行:
source~/.bashrc不过我建议你先不要急着永久写死。因为不同项目可能用不同工具链,乱加太多容易冲突。
7. 结合你现在的编译问题
你前面 Buildroot 报错是因为 PATH 里有 Windows 的带空格路径。
所以你现在更推荐这样做:
exportPATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/wsl/lib:/snap/binexportPATH=/home/vik/project/x2600/tools/toolchains/mips-xburst2-gcc720-glibc238/bin:$PATH第一句:清理 PATH,去掉 Windows 的Program Files这种带空格路径。
第二句:把君正 X2600 工具链加进去。
然后验证:
whichmips-linux-gnu-gcc mips-linux-gnu-gcc--version最后再编译:
cd~/project/x2600/buildmake-j42>&1|teebuild.log一句话总结:
exportPATH=君正工具链bin目录:$PATH就是告诉 Linux:以后找命令时,先去君正工具链目录找,这样 make 才能找到 mips-linux-gnu-gcc 来编译 X2600 程序。
