一、起因
近期在玩Boost库。当然首先是要进行Boost库的安装和配置。于是浅墨Google了一下boost库的安装配置攻略。下载了最新版1.55的boost库。就愉悦地開始进行配置了。
当进行到第五步。要在VS命令提示符中执行bootstrap.bat的时候,问题就来了,按着攻略打开Visual Studio2010命令提示符,就迎面报错:
“Setting environment for using MicrosoftVisual Studio. 此时不应有Mirosoft”
于是就有了下文解决这个问题的过程和这篇博文的诞生。
二、相关背景
1.关于环境变量的设置。详细在【我的电脑】->【属性】->【高级系统设置】->【环境变量】,系统变量里面的PATH变量的值。
2.打开Visual Studio2010命令提示符的两套方法。
其一,通过VS的菜单条:
其二,通过開始菜单:
三、网络上流传的解决方式
浅墨之后google了一大圈,发现网络上流传的关于““Setting environment for using MicrosoftVisual Studio. 此时不应有Mirosoft””解决方式有例如以下两个流派。
1. path变量清零法
这个流派的原文地址:
http://hi.baidu.com/jsmlay/item/8314bb2bcb4e0b0376272ca9
其原文例如以下:
“
Setting environment for using MicrosoftVisual Studio 2010 x86 tools.
此时不应有/Utilities/Bin/x86";C:/WINDOWS/system32;C:/WINDOWS;C:/WINDOWS/System3
2/Wbem;C:/Program Files/Microsoft SQLServer/90/Tools/binn/;C:/Program Files/Gem
plus/GemSafe Libraries/BIN/"等等的问题。导致各种命令工具不能使用的问题。
解决方式。将path环境变量中指明不应有路径拷贝到别处,然后在path先删掉。确定。退出cmd,又一次进cmd执行操作。成功后再把path拷贝回去。”
点评:这样的方案比較简单粗暴并且非常弱。
明知道path变量的错误在那里。不迎面解决,而是有益回避。
这是治标不治本的方案。
pass。
2 删除path变量错误地方的方法
这个流派的原文地址:
http://www.myexception.cn/c-sharp/560512.html
当中说:
“执行VS2008命令行工具就会出现
Setting environment for using Microsoft Visual Studio 2008 x86 tools.
此时不应有 /Utilities/Bin/x86";C:/WINDOWS/system32;C:/WINDOWS;C:/WINDOWS/System3
2/Wbem;C:/Program Files/Microsoft SQL Server/90/Tools/binn/;C:/Program Files/Gem
plus/GemSafe Libraries/BIN/"等等的问题,导致各种命令工具不能使用的问题。
解决的方法:在系统设置环境变量中,删除Path变量中的"C:/Program Files/Microsoft DirectX SDK (June 2006)/Utilities/Bin/x86"。这是DirectX SDK中的Bug,导致双引用。”
点评:这样的方案有些接近终于的解决方式了,它是在认真的解决错误而不是採取消极回避的方式。定位了错误在这句,他的做法是直接删除这条path。算是比較机智,可是会带来后遗症。也许由于删除了这个路径。之后基于DirectX SDK的程序,都跑不起来了。
再来看看浅墨经过思考后的解决方式吧。
四、浅墨的解决方式
浅墨发现。大概是由于系统的path变量中不同意写双引號”“,而在历代DirectX SDK安装的时候。DXSDK安装文件都会自己主动在Path变量中加上一句带双引號的DirectX SDK路径。
这应该就是此问题的根源了。所以。解决方式非常easy,将path变量DirectX SDK路径两边的双引號去除就可以。
也许仅仅要在电脑上安装了DirectX SDK。打开Visual Studio命令提示符都会遇到这个问题。
当然,不局限与DXSDK的路径。反正仅仅要是在PATH变量的值里面,写了双引號之类的它不识别的字符,都会报相似的错误。
就是看环境变量中。是不是有填错的地方。比方末尾多写了一个反斜杠“/”。还是当中的变量加了双引號。
PATH环境变量上面提到过。大家也应该肯定之前都清楚。在【我的电脑】->【属性】->【高级系统设置】->【环境变量】,系统变量里PATH变量的值。
这是浅墨之前报错时相应的PATH路径的值:
C:Program Files (x86)NVIDIACorporationPhysXCommon;"D:ProgramFiles (x86)Microsoft DirectX SDK (June 2010)UtilitiesBinx86";%SystemRoot%system32;%SystemRoot%;%SystemRoot%System32Wbem;%SYSTEMROOT%System32WindowsPowerShellv1.0;C:ProgramFiles (x86)IntelOpenCL SDK3.0inx86;C:Program Files (x86)IntelOpenCLSDK3.0inx64;C:Program Files (x86)Microsoft SQLServer100ToolsBinn;C:Program FilesMicrosoft SQLServer100ToolsBinn;C:Program FilesMicrosoft SQLServer100DTSBinn;C:Program Files (x86)AutodeskBackburner;C:ProgramFilesCommon FilesAutodesk Shared;D:Program Files (x86)CMake2.8in;D:Program Files (x86)opencvuildx86vc10in;D:Program Files(x86)opencvuildx64vc10in;C:Program Files (x86)Microsoft SQLServer100ToolsBinnVSShellCommon7IDE;C:Program Files (x86)MicrosoftVisual Studio 9.0Common7IDEPrivateAssemblies;C:Program Files(x86)Microsoft SQL Server100DTSBinn;%JAVA_HOME%in;%JAVA_HOME%jrein
当中,红色加粗的就是错误部分——"D:ProgramFiles (x86)Microsoft DirectX SDK (June 2010)UtilitiesBinx86"照成浅墨机器上报错“Setting environment for using Microsoft Visual Studio 此时不应有“系列问题的罪魁祸首。
当浅墨把当中的双引號去掉之后,先退出Visual Studio,再打开Visual Studio。通过菜单条再次打开Visual Studio命令提示符的时候。就显示正常了:
这是浅墨更改之后的path变量的值:
C:Program Files (x86)NVIDIACorporationPhysXCommon;D:ProgramFiles (x86)Microsoft DirectX SDK (June 2010)UtilitiesBinx86;%SystemRoot%system32;%SystemRoot%;%SystemRoot%System32Wbem;%SYSTEMROOT%System32WindowsPowerShellv1.0;C:ProgramFiles (x86)IntelOpenCL SDK3.0inx86;C:Program Files (x86)IntelOpenCLSDK3.0inx64;C:Program Files (x86)Microsoft SQLServer100ToolsBinn;C:Program FilesMicrosoft SQLServer100ToolsBinn;C:Program FilesMicrosoft SQLServer100DTSBinn;C:Program Files (x86)AutodeskBackburner;C:ProgramFilesCommon FilesAutodesk Shared;D:Program Files (x86)CMake2.8in;D:Program Files (x86)opencvuildx86vc10in;D:Program Files(x86)opencvuildx64vc10in;C:Program Files (x86)Microsoft SQLServer100ToolsBinnVSShellCommon7IDE;C:Program Files (x86)MicrosoftVisual Studio 9.0Common7IDEPrivateAssemblies;C:Program Files(x86)Microsoft SQL Server100DTSBinn;%JAVA_HOME%in;%JAVA_HOME%jrein
解决完这个问题,就继续開始Boost库的安装配置和编译了:
OK。大概就是这些了。