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

摘要:
PATH表示路径。PATH环境变量中存储的值是一系列路径。不同的路径在英语中用分号分隔。如果找不到,请依次在PATH保存的这些路径中查找相应的可执行程序文件。经过长时间的修补,终于在PATH中删除了vc12/bin,它成功运行了。然后我想知道,当执行opencv相关命令时,系统是否无法在vc12/bin下找到相应的命令。所以,我把vc12/bin加回来,放在vc10/bin后面。编译后,它运行成功,这证实了我的想法。

  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的后面,编译后运行,也成功了,这就印证了我想法的正确。

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

免责声明:文章转载自《windows环境变量PATH顺序的重要性》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇java连接sqlserver数据库[转]centos6 与 7 其中的一些区别下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

service之class core和class main

class core 和class main有何不同 在分析Kitkat加密功能的时候,在一些资料上看到一句话“对于加密后的系统,重启后,进入到输入密码界面,此时并没有完全加载Android系统,仅仅加载必要的服务” 那么这个必要的服务又是指的是那些服务呢? 在解答这个问题前我们先区分一下class core ,class main, class late...

(转载)linux中shell变量

(转载)http://blog.csdn.net/zahuopuboss/article/details/8633891 为使shell编程更有效,系统提供了一些shell变量。shell变量可以保存诸如路径名、文件名或者一个数字这样的变量名。shell将其中任何设置都看做文本字符串。有两种变量,本地和环境。严格地说可以有4种,但其余两种是只读的,可以认为...

Linux远程管理器xshell和xftp使用教程,以及遇到关闭Xshell后项目也停止的解决方法

1.xshell 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议。 2.是一个基于 MS windows 平台的功能强大的SFTP、FTP 文件传输软件。 两个软件的使用方法图解网址吧:http://www.xker.com/page/e2014/0707/132788.html...

Android编译系统环境过程初始化分析【转】

本文转载自:http://blog.csdn.net/luoshengyang/article/details/18928789  Android源代码在编译之前,要先对编译环境进行初始化,其中最主要就是指定编译的类型和目标设备的型号。Android的编译类型主要有eng、userdebug和user三种,而支持的目标设备型号则是不确定的,它们由当前的源码...

开源文字识别软件tesseract

1.下载4.0软件,下一步下一步到成功; 2.安装之后配置环境变量,Path中添加安装路径(默认:C:Program Files (x86)Tesseract-OCR) 3.新增语言库的环境变量,变量名:TESSDATA_PREFIX,变量值(默认:C:Program Files (x86)Tesseract-OCR essdata) 4.测试软件是否可...

linux下安装oracle 10g 的艰难之旅

在linux下安装oracle是一件令人生畏的事情,其复杂程度远远超过安装linux操作系统本身。如果能够进行成功的安装oracle,那么同时也就顺便掌握了linux一些技术。本文介绍在redhat linux 下安装oracle 10g 的方法。在这里说明一下,Oracle 10g的g是grid 的缩写,意为网格,目前较为前沿的网络计算技术。   Ora...