之前提到,在MATLAB中编译C程序时安装了VS2015。感觉VS2015的界面风格过于臃肿,还是喜欢pycharm的编程界面风格,于是开始下载VS2019和CLion。
结果在VS2019安装完成以后(使用的是在线安装),发现不管是VS2019还是VS2015在build的时候都出现了这样的问题:
Debug后提示“无法启动程序,系统找不到文件(exe)”。
网络上的解决方案如下:
(1)保证一个工程下的源文件中只含有一个main函数。
(2)保证链接器的生成目录和搜寻目录一致。如果生成路径和搜寻路径不一致,编译器就找不到已经生成的exe文件。
仔细思考,发现工程建立是没有问题的,两条路径是一致的。问题在于这条路径下没有生成可执行文件。因此都不是上述问题。
再看错误日志:
错误 MSB4018 “CL”任务意外失败。
System.TypeInitializationException: “Microsoft.Build.Utilities.FileTracker”的类型初始值设定项引发异常。 —> System.UnauthorizedAccessException: 拒绝访问。 (异常来自 HRESULT:0x80070005 (E_ACCESSDENIED))
在 System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo)
在 Microsoft.Build.Shared.NativeMethodsShared.ThrowExceptionForErrorCode(Int32 errorCode)…
提示UnauthorizedAccessException,怀疑是系统权限出了问题,于是从以下两条路去尝试解决问题:
(1)找到日志文件中提到的Localsetting文件夹,并放开这个文件夹的权限。
(2)使用系统管理员权限打开VS。
结果都没有解决这个问题。
网上咨询了网友以后,怀疑是在VS2015的基础上安装VS2019+CLion以后对环境造成了破坏,于是卸载VS2015/2019,使用在线安装的方法重新安装,但仍然出现问题。
网上搜寻后发现,在线安装的故障率比较高,不如镜像安装。于是找到了VS2015的镜像版本,安装。花费的时间确实比在线安装要长很多。
安装完成以后,VS2015可以正常编译了。