Symbolic links on Windows - Arduino libraries as link

I would like to share this as it is not as commonly known as it should be. Many of you probably know.

We have a largish project under Subversion control with reusable and 3rd party code in libraries. Some team members use Linux and some Windows. On Linux we use Arduino/libraries as symbolic link targeting project subdirectory. On Windows we have been merging %USERPROFILE%/Arduino/libraries with the project's libraries directory before commit. This is an extra step that if forgotten, creates bit of frustration.

Recently found out NTFS supports symbolic links just like Linux.

Before running the script below make sure there is no Arduino/libraries directory or is just symbolic link otherwise rmdir fails. Change last line to point to your project's libraries directory.

And one more thing - whenever you do this, restart Arduino IDE as it scans libraries on start. You can change code in libraries without restarting IDE, but not rename or add libraries.


@echo off
rem This script will link the %USERPROFILE%\Documents\Arduino\libraries to
rem this rem directory. If you have multiple projects, keep this batch file with
rem each project and run when moving to it.

net session >nul 2>&1
if %errorLevel% == 0 (
    echo Success: Administrative permissions confirmed.
) else (
    echo Failure: Current permissions inadequate. Run as administrator

rmdir %USERPROFILE%\Documents\Arduino\libraries
mklink /D %USERPROFILE%\Documents\Arduino\libraries C:\Customer1\src\controller\arduino\libraries