情况:
改动代码后程序运行依旧为更新,之后变重新生成,
多个项目
问题:
case1. 当重新生成单个改动的项目时,错误提示:错误 716 error LNK1181: 无法打开输入文件“F:\。。。。。。。\Debug\LSVM_generated_csr.cu.obj”
(一般缺无法打开obj的解决办法是找到正确的对应的lib在连接器中添加正确路径,但是!但是!我们重新生成之后在Debug文件夹中连lib文件都没有!)
case2. 当重新生成整个解决方案时,提示错误“无法解析未定义的标识符”(这个标识符是在csr.cu里的函数),并会有找不到’.exe’等报错。
(一般无法解析的标识,就看这个函数在那个项目中的那个文件定义的,在连接器中加上对应的那个项目中Debug文件中的lib文件,但是!但是!还是在那个项目中的Debug文件夹中没有生成的lib文件!)
最最最坑的是两个相似的项目同时在在启动项目中引用了两个项目中的函数,而只有我自己写的函数报错,让我一度自认为自己写错了,当全部清理之后这下引用的另一个项目的函数也报错了,不是不报只不过是VS脑子有病!哈哈哈,错误多了我还开心了,因为我又更加确定了这就不就是代码问题了
不管是第一种情况还是第二种情况百度出来的结果都不能解决问题,
总之不管什么错误起的,根本原因都不是报错的表面原因
万事还得靠灵感
反正百度的办法都不好用,那么就胡来吧!
解决办法:
step1. 你不是说无法打开“obj”文件吗?我就在项目中移出他,不仅移出我还彻底删了他,我不仅删了他,我把所有obj文件里的obj全删了!反正你也不是我编的代码,本着只要不是代码,万事都是后天生成的,只要能生的就能删,让他重生吧!切记将两个项目中的所有obj都删了
就把具体如图的这两个文件下的东西删干净:
step2. 删了之后还要把启动项目中的连接器重的这两个项目对应的…/Debug/~.lib删了,因为不删文件夹里也没有这俩文件
(如果不删重新生成则会报错无法打开lib)
step3.重新生成整个解决方案
step4.这个时候回报错,报类似无法解析的。。。,这就是正常的错误了,因为我都没添加引用项目文件中的lib能解析就怪了
但是好消息是这两个项目中的Debug文件夹中有lib文件了
step5. 这时候再把这两个项目重的lib文件的具体位置添加到其中项目连接器中
如图:
step6.添加完之后,再重新生成这个解决方案,ok了!