[转载]ERROR: Failed to locate cl.exe

    本人转载至http://blog.sina.com.cn/s/blog_5f3759a00100uc5x.html,感谢作者帮我解决了问题。

    本人机器环境为:VS2010 + OpenCV2.4.4 + Win7 x64,按照以下链接进行配置

http://wiki.opencv.org.cn/index.php/VC_2010%E4%B8%8B%E5%AE%89%E8%A3%85OpenCV2.4.4

    配置完成后,在编译其它工程时候,出现了提示:ERROR: Failed to locate cl.exe.

    在尝试解决该问题的过程中,找到了前面提到的链接文章,正好也帮我解决了问题。以下是部分原文

    分析问题:
    1、第一次遇到这种问题,真的是无从下手。查找半天也没有合适的解决方案,只好用下策,重装VS2010。在我们重装vs2010之后,很不幸,问题依然存在。在问题没有完全搞清楚之前就重装,未必会解决问题。当然,重装系统那就是下下策了。很多人不愿查找问题,索性重装一了百了,费时费力。
       cl.exe其实是VC使用的编译器。出现这个错误,意思是VS2010找不到cl.exe。有可能这个文件丢失?经过查找,安装目录下是有这个文件的。所以文件是存在的。既然找不到,那就应该是路径设置不对。恰好,我们在配置opencv环境时,需要另外增加路径,只有这个过程会改变路径。

    2、注意到在卸载opencv2.2之后,vs2010中 Configuration Properties -> VC++ Directories 里仍然包含opencv2.2 相关文件的路径。而且在配置界面下无法删掉,已经成了default settinig的一部分。
       其实,在配置opencv环境的时候,所需要包含的路径都是可以随便添加删除的。至于为什么opencv的文件夹路径成为系统默认设置中的一部分,不得而知。既然是可配置的,那么VS中必定包含相应的配置文件。所以目标就是要找到对应  Configuration Properties -> VC++ Directories 的用户配置文件。

    解决问题:
    对应于Configuration Properties -> VC++ Directories 的用户配置文件,在%LocalAppData%\Microsoft\MSBuild\v4.0文件下,即 Microsoft.Cpp.Win32.user。这个文件可以用记事本打开,里面果然包含了opencv2.2的相关路径。至此真相大白!将其删去,即可解决问题。
    正常的情况下,Microsoft.Cpp.Win32.user的内容如下:


    ………………………………………分割线……………………………………………………
   
   
   

    ……………………………………分割线………………………………………………………

    从该文件的路径可以知道,这是用户配置文件,可以用来预设VS2010的路径。卸载VS2010时,这个文件并没有被删除,重装VS2010之后,这个文件又被调用了,这也是重装之后问题依旧的原因所在。
    更多关于VC++ Directories 请参考
    http://blogs.msdn.com/b/vcblog/archive/2010/02/16/project-settings-changes-with-vs2010.aspx

你可能感兴趣的:([转载]ERROR: Failed to locate cl.exe)