LNK1104错误

来源:互联网 发布:php源码怎么修改 编辑:程序博客网 时间:2024/06/05 06:49

编译一个MFC工程的时候出现链接错误,提示为:
Error 1 fatal error LNK1104: cannot open file 'uiAccess='false'
/DEF:./NetLib.def /DELAYLOAD:OleAcc.dll /DEBUG
/PDB:D:/DoctorWork-Program/Program/NECP/NetworkedArmRobot/Debug/ncs.pdb'

昨天晚上折腾了一个多小时也没有找到错误在哪儿,今天去糊里糊涂地解决了。

因为有好几个类工程,开始跟其它的比较没有发现哪里有不对的地方,其它的都能编译,这个工程就是不能编译,OleAcc.dll是系统文件,其它工程都可以打开,应该不是它的问题,问题应该就在ncs.pdb.可是实在找不到问题在哪儿,于是新建了一个新工程,把源文件拷过去,把原来的自定义的配置项复制过去,终于复现了原来的错误,开始怀疑是自定义选项的问题,于是便试着把一些选项去掉。

开始,去掉了Additional Library Directories,编译竟然通过,可能是没有其它项目引用该项目,引用的另外一个库并没有被链接器链接,所以不会有找不到库的问题。于是我把原来的工程中的该选项去掉,结果提示找不到引用的另外一个库文件,于是又加上了。

没办法,我把该选项去掉,然后手动把它引用的库文件复制到项目所在文件夹,编译,通过。可是这样搞得项目结构很乱,于是又把库文件放回原处,这回添加Additional Library Directories,使用绝对路径,编译竟然成功。

最后,又把绝对路径改回到使用$(SolutionDir)标记的路径,重新链接,居然成功,于是项目正常工作。

可是遗憾的是没有搞明白问题在哪儿,想再现原来的链接错误,没有成功。不知道是不是链接器哪儿有个BUG造成的,如有机会再试着找原因吧。

原创粉丝点击