windows环境变量PATH顺序的重要性

  PATH是路径的意思,PATH环境变量中存放的值,就是一连串的路径。不同的路径之间,用英文的分号间隔开。系统在执行用户命令时,若用户未给出绝对路径,则首先在当前目录下寻找相应的可执行文件、批处理文件等。若找不到,再依次在PATH保存的这些路径中寻找相应的可执行程序文件(windows环境变量的查找顺序是按照文件的录入顺序从前往后寻找的,最前面一条的优先级最高,如果找到命令就不会再向后找了)。

  在我身上发生的事让我觉得PATH顺序的重要性:之前在做图像处理时,使用了opencv2.4.10,由于使用的是vs2013进行编译,所以在PATH中填入的是opencv中的vc12/bin;后来因为使用了一款较旧的工业相机,它提供的库最新只能支持到vs2010,于是乎我就下载了vs2010,但还是使用vs2013进行编译(可以在vs2013中选择平台工具集为vs2010,而不必再vs2010中重建工程),在vs2013中把用到的opencv库链接的lib文件改为了vc10/lib下的,再将vc/bin目录加入到PATH环境变量的最末尾。结果编译后没问题,运行生成的exe就奇奇怪怪的错,大致的意思是你使用的XXX在堆中没有释放之类的(英文不好哎。。。)就觉得很奇怪,之前用vs2013版本的时候不会出现这些错误的。瞎折腾了很久,最后在PATH中把vc12/bin删掉,才成功地运行。

  然后我就在想,是不是系统在执行opencv相关的命令时,在vc12/bin下找到相应的命令后(vc12/bin和vc10/bin下的命令应该是同名的),就不往下继续找了。于是,我再把vc12/bin加回来,放在了vc10/bin的后面,编译后运行,也成功了,这就印证了我想法的正确。

  在此做个记录,给自己提个醒~

时间: 2024-10-29 19:08:33

windows环境变量PATH顺序的重要性的相关文章

Linux系统下修改环境变量PATH路径的三种方法

比如要把/etc/apache/bin目录添加到PATH中,方法有三: 1.#PATH=$PATH:/etc/apache/bin 使用这种方法,只对当前会话有效,也就是说每当登出或注销系统以后,PATH 设置就会失效 2.#vi /etc/profile 在适当位置添加 PATH=$PATH:/etc/apache/bin (注意:= 即等号两边不能有任何空格) 这种方法最好,除非你手动强制修改PATH的值,否则将不会被改变 3.#vi ~/.bash_profile 修改PATH行,把/et

Linux 环境变量 $PATH

我们知道查阅文件属性的指令 ls 完整文件名为:/bin/ls(这是绝对路径),那为什么可以在任何地方执行/bin/ls 这个指令呢?  为什么在任何目录下输入 ls 就一定可以显示出一些讯息而不会说找不到该 /bin/ls 指令呢? 这是因为环境变量 PATH ! 当我们在执行一个指令的时候,比如ls,系统会依照 PATH 的每个 PATH 定义的目录下搜寻文件名为 ls 的可执行文件, 如果在 PATH 定义的目录中含有多个文件名为 ls 的可执行文件,那么先搜寻到的同名指令先被执行! ec

Windows系统环境变量path优先级测试报告

转自:http://bluekylin.cnblogs.com/archive/2005/12/16/298797.html 总以为自己很已经会操作windows了,今天在它帮助中看到一大片还不知道的命令行工具,不过这篇随笔跟这些工具没什么关系的,只是我在用一个命令的时候打错了,结果导致我忍不住要写点东西. 当有些命令的运行结果比较长(好几页)的时候,我经常会把它们的结果输出到一个文本中,这绝对是个好习惯,比如,利于搜索: 如果我想查找D盘的一个文件,不知道它放在哪个文件夹中,我会使用tree命

直接改变环境变量PATH,是不可以更换JDK的

笔记: jdk(windows上)安装后,会在windows\system32下放置java.exe,所以你直接改变环境变量,是不可以更换JDK的. 如果你非要这样做,那你删掉windows\system32下java.exe,javaw.exe吧 最好的方式,卸载掉jdk,然后再重装,这样可以避免垃圾的存在 2014年6月25日11:15:35 直接改变环境变量PATH,是不可以更换JDK的

windows 环境变量

1.考虑下面的需求,进入cmd之后,我就想执行mysql客户端命令,而这需要转到mysql安装目录,找到mysql可执行文件,在这个目录下执行mysql命令.这样太麻烦,有没有好的解决办法? 2.使用环境变量,变量名为MYSQL_HOME,变量值为C:\Program Files (x86)\MySQL\MySQL Server 5.5\bin,在windows命令行,执行cd %MYSQL_HOME%,转到对应的目录,执行mysql客户端命令.注意:VS中引用环境变量使用$(MYSQL_HOM

windows环境变量如何在cmd中打印

在windows的cmd下,用"set"命令可以得到全部的环境变量,如何想得到某个环境变量,直接这样"set path"就可以了. set不仅如何,还有其他功能,有机会再补充上来. windows环境变量如何在cmd中打印

java环境变量 Path 与CLASSPATH

1.Windows操作系统根据Path环境变量来查找命令,Linux操作系统则根据PATH环境变量来查找命令 因为Windows操作系统不区分大小写,设置Path和PATH并没有区别,而Linux系统是区分大小写的设置Path和PATH是有区别的,因此我们只需要设置PATH变量即可 2.CLASSPATH环境变量定位类: 1.       JDK 1.5以上的版本完全可以不用设置CLASSPATH环境变量 2.       1.4以前的JDK版本需要在CLASSPATH环境变量中添加一点(.)用

python添加Windows环境变量

1.cmd中添加方式 SET PATH=%PATH%;c:\Program Files (x86)\Wireshark 注:如上代码添加c:\Program Files (x86)\Wireshark至Windows环境变量中 但在python中使用os.system()函数却无法执行该命令,目前还未找到原因. 2.python操作Windows注册表进行更改 import _winreg as wg key_test = wg.OpenKey(wg.HKEY_LOCAL_MACHINE,r"S

JDK下载安装与环境变量path配置

说明:虽然 JAVA SE 10已经发布,但本次还是采用JAVA SE 9,这个版本只提供给开发人员使用,但不能作为生产环境使用. 大致增加了以下新特性: 1.新增jshell工具: 2.新增日志API; 3.新增不可变集合: 4.增强"菱形"语法: 5.增强自动关闭资源的try语句: 6.改进GUI(图形用户界面)和AWT; 7.改进对象序列化: 8.新增发布-订阅框架: 9.新增模块化系统(重大更新) 下载安装与环境变量path配置 一.下载地址 http://www.oracle