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

command lineenvironment-variableswindows

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?

Best 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

Related Question