您的位置:晶晶的博客>杂谈>win平台环境变量与dll动态链接库搜索路径小结

win平台环境变量与dll动态链接库搜索路径小结

今日需要做一个在cmd命令窗口下使用php.exe执行的php小程序,用于循环获取某API提供的json数据并进行分析后实时发送短信提醒。

用惯了linux下的直接命令窗口输入curl、php等命令而不需要附带路径,cmd一打开就习惯性的输入curl __APIUrl__获取json数据格式,结果cmd直接提示:“‘curl’不是内部或外部命令,也不是可运行的程序或批处理文件。大致问题可以归纳为如下:

/****cmd下执行curl.exe文件时有如下书写方式****/

//
curl http://www.xxx.com/JsonApi
//
D:\tools\curl.exe http://www.xxx.com/JsonApi

/***
//当执行方式一时因为没有将路径D:\tools\添加到系统环境变量(或用户环境变量)中,会提示找不到curl.exe
//这个时候要执行curl.exe就只能使用方式二了
//那么我非要使用方式一呢?
//这个时候就要将D:\tools\路径添加进去,然后就可以使用方式一了
***/

这种问题是一个很常见的问题了,在linux下可以很容易的添加一个系统环境变量,代码如下:

vi /etc/profile
//如php/usr/local/php5/bin/,
export PATH=$PATH:/usr/local/php5/bin

//退 使用php

但目前咱们遇到的问题不是在win平台下嘛~其实原理差不多,以为win系统添加curl命令为例。

我因为要在cmd中运行curl命令,下载了curl(带ssl、ssh2的),下载地址:

https://www.paehl.com/open_source/?download=curl_733_0_ssh2_ssl_sspi.zip 【curl主程序】

https://www.paehl.com/open_source/downloads/libssh.7z 【curl需要用到的openssl、ssh的dll库】

解压上述exe以及dll文件后,全部放在D:\tools文件夹下,打开cmd命令窗口,敲入如下命令:

D:\tools\curl.exe http://www.baidu.com

命令可以顺利执行,那么我想直接打开cmd命令窗口后输入如下命令也执行,就需要添加系统环境变量了。

curl.exe http://www.baidu.com

以本文中路径以及curl为例,概述下为curl添加系统环境变量的过程:

“我的电脑”--右键“属性”--“高级系统设置”---“环境变量”如下图所示,为系统超级管理员添加一个环境变量即可(不同的电脑有不同的系统用户,其显示是有区别的,当然也可以添加“系统变量”)。

添加系统或用户环境变量界面

将curl的目录添加进用户环境变量中的path即可,在已有变量后方添加如下:

;D:\tools

刚开始的时候因为我下载curl为带openssl与ssh功能的版本,而又未下载上述下载地址中的第二个dll动态链接库文件,一运行就提示错误,如下图所示:

图中错误信息已经很明确了,系统找不到libssh2.dll文件,这就牵涉到dll文件的加载位置问题了,找了下win平台关于加载dll文件的顺序,如下:

应用程序所在目录→当前目录→Windows SYSTEM目录→Windows目录→PATH环境变量指定的路径

这下好理解了,将上述下载地址第二个中下载的dll文件与curl.exe放置在同一个目录不就OK了嘛~

(文件目录情况)

(环境变量、dll配置完成后的情况)

转载请注明本文标题和链接:《win平台环境变量与dll动态链接库搜索路径小结

相关推荐

哟嚯,本文评论功能关闭啦~