CUDA 8 nvcc square brackets in include path issues


I am working with cuda 8 nvcc compiler tool & msvc 14 (Visual Studio 2015 Update 3) on Windows 7 SP1.

Currently experiencing following issues with nvcc: nvcc is unable to find files located under include paths containing square brackets, e.g. nvcc.exe … -I"C:[work]\project\src\Include" (all .h files in the Include folder cant be found). If I change the path to something without square brackets, e.g. -I"C:\work\project\src\Include" everything start to work as it should.

Exact nvcc version:

Built on Sat_Sep__3_19:05:48_CDT_2016
Cuda compilation tools, release 8.0, V8.0.44

Is this a well-known issues? Is there any chance for a release, fixing this behavior?

Square brackets in path names are problematic for a variety of Windows applications, so the issue is not restricted to the CUDA toolchain, and is unlikely to be a CUDA 8 specific issue. In some contexts (notably, PowerShell) the square brackets are actually used for a wildcard mechanism. Have you tried escaping the brackets?

I am not sure that NVIDIA can do anything about this (path name expansion may be hidden inside various OS services or third-party libraries), but you may want to file a request for enhancement (RFE) with NVIDIA. Enhancement requests can be filed via the bug reporting form linked from the CUDA registered developer website, simply prefix the synopis with “RFE”.

[Later:] Interestingly, from playing with CUDA 7.5 on Windows it seems that path names containing brackets are no issue when specifying source files, but cause “file not found” errors when used for include paths. I tried escaping the brackets any way I could think of, nothing helps. So I guess the recommended workaround for now is not to use paths with brackets. A quick Google search indicates that even some of Microsoft’s own applications, such as Excel, have (or at least, had in the past) issues with paths containing brackets.