我刚刚在使用Windows 10的工作笔记本电脑上安装了Visual Studio 2015.
我已经克隆了一个存储库,其中包含使用相同版本的Visual Studio(更新3)在另一台PC上创建的解决方案,始终使用Windows 10.
当我尝试在笔记本电脑上构建解决方案时,我收到以下错误:
c:\program files (x86)\microsoft visual studio 14.0\vc\include\crtdefs.h(10): fatal error C1083: Cannot open include file: 'corecrt.h': No such file or directory
Run Code Online (Sandbox Code Playgroud)
在这个页面中,我已经读过我必须添加$(UniversalCRT_IncludePath)到我的包含路径,但即使在这种情况下,我也会获得相同的错误.
我已经检查并$(UniversalCRT_IncludePath)引用了这条路径:
C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt
Run Code Online (Sandbox Code Playgroud)
笔记本电脑上缺少此路径.相反,我有这个:
C:\Program Files (x86)\Windows Kits\10\Include\10.0.10150.0\ucrt
Run Code Online (Sandbox Code Playgroud)
所以看起来窗口版本是不同的.可能这是真的,因为在我的笔记本电脑上我没有安装1511 windows升级,而在另一台电脑上都安装正确.
我的问题是如何corecrt.h在不弄乱路径的情况下在两个pc中引用文件.我想避免硬连接这些路径,因为它们依赖于pc.而且我不明白为什么在我的笔记本电脑中路径是错误的,因为它应该是系统相关的而不是连接到解决方案中.
我该如何解决这个问题?我知道我可以将我的笔记本电脑更新到相同的Windows版本,但我想避免它出于很多原因.
- 编辑
我注意到我有这条道路:
C:\Program Files (x86)\Windows Kits\8.1\Include\10.0.10240.0\ucrt
Run Code Online (Sandbox Code Playgroud)
它具有相同的10.0.10240.0版本,但与另一个Windows工具包版本相关,所以在这种情况下可能存在一些问题.在我的笔记本电脑上我也是Visual Studio 2013,所以也许它可以来自它,但我无法删除它,因为我正在使用Visual Studio 2013维护另一个项目,我还无法删除它.
也许在Visual Studio 2015文件夹中我可以$(UniversalCRT_IncludePath)在一些.bat文件中明确设置(vcvarsall.bat或类似),但我不知道哪个文件和位置.
我正在研究在Windows系统上编译一些CUDA内核.根据我的理解,nvcc编译器需要使用cl.exe在Windows系统上进行编译.获得此功能的主要方法是使用Visual Studio.因此我安装了免费社区版.之后我预计会有bin目录在VC目录中,如多个其他问题所示,例如这一个和这个.然而,我需要更深入地找几层
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.10.25017\bin\HostX64\x64\cl.exe
Run Code Online (Sandbox Code Playgroud)
此特定项目旨在生成可在多个不同Windows系统上编译和使用的程序.我真的需要期望该cl.exe文件是嵌套的还是我错过了某种安装步骤?我期待更短的路径:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\bin\
Run Code Online (Sandbox Code Playgroud)
最终,我需要尽可能简单的方式让用户能够让他们的环境找到cl.exe文件.通常,这涉及(在最高级别)设置环境变量.
在过去的两周里,我一直在寻找可能的错误解决方案.我已经成功安装了Cuda 64位编译器(工具)和SDK以及64位版本的Visual Studio Express 2008和带有Framework 3.5的Windows 7 SDK.我正在使用Windows XP 64位.我已经确认VSE能够以64位编译,因为我使用以下网站上的步骤可以使用所有64位选项:(因为Visual Express本身并不包含64位软件包)
http://jenshuebel.wordpress.com/2009/02/12/visual-c-2008-express-edition-and-64-bit-targets/
64位安装的注册表更新可在与上述链接相同的页面上的用户注释中找到.
我已经确认了64位编译能力,因为"x64"可从"工具 - >选项 - > VC++目录"下的下拉菜单中获得,而64位编译不会导致整个项目被"跳过" .我已经包含了64位cuda工具,64 SDK和Visual Express(\ VC\bin\amd64)所需的所有目录.
这是我尝试以64位编译时收到的错误消息:
1>------ Build started: Project: New, Configuration: Release x64 ------
1>Compiling with CUDA Build Rule...
1>"C:\CUDA\bin64\nvcc.exe" -arch sm_10 -ccbin "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin" -Xcompiler "/EHsc /W3 /nologo /O2 /Zi /MT " -maxrregcount=32 --compile -o "x64\Release\template.cu.obj" "c:\Documents and Settings\All Users\Application Data\NVIDIA Corporation\NVIDIA GPU Computing SDK\C\src\CUDA_Walkthrough_DeviceKernels\template.cu"
1>nvcc fatal : Visual Studio configuration file '(null)' could not be …Run Code Online (Sandbox Code Playgroud)