Saturday, September 26, 2015

windows - Using an environment variable set to a path value: the system cannot find the path specified for %OPENCV_DIR%


I'm trying to set an environment variable to point to the directory into which I have extracted the latest version of OpenCV, following the instructions in OpenCV's Installation in Windows tutorial.


Here's my elevated command line listing.


C:\>cd C:\OpenCV2.4.6\build\x64\vc11
C:\OpenCV2.4.6\build\x64\vc11>cd ../../../..
C:\>setx -m OPENCV_DIR C:\OpenCV2.4.6\build\x64\vc11
SUCCESS: Specified value was saved.
C:\>cd %OPENCV_DIR%
The system cannot find the path specified.
C:\>echo %OPENCV_DIR%
%OPENCV_DIR%


  1. Firstly I change directory to C:\OpenCV2.4.6\build\x64\vc11 to ensure that it exists.

  2. After that is successful I change directory back to the root of the C drive.

  3. Then I use setx to make OPENCV_DIR a system wide environment variable with value the C:\OpenCV2.4.6\build\x64\vc11 path I verified in step 1.

  4. Noting the success of setx in the previous step I now change directory using the new environment variable. But it fails with the message The system cannot find the path specified.

  5. If I try to echo the value of the OPENCV_DIR environment variable it appears not to be set.


Looking in the control panel the OPENCV_DIR environment variable looks correctly set:


OPENCV_DIR environment variable in the control panel screenshot


What's wrong? Why is the variable not working? Am I evoking it incorrectly when I use it to change directory or echo its value?


Answer



Next time just try to close and reopen the process (hehe what a cliche...)


The reason is that once a process is launched, all the variables are being written to its own address space.


If you are changing the User \ System variables - the open cmd.exe (for example) won't get the new values, but a new cmd.exe process will...


gl,


Refael


No comments:

Post a Comment

linux - How to SSH to ec2 instance in VPC private subnet via NAT server

I have created a VPC in aws with a public subnet and a private subnet. The private subnet does not have direct access to external network. S...