一、引言
有一次在工作中遇到了这样一个问题:
LINK : fatal error LNK1104: cannot open file ‘PocoFoundationmt.lib’
这个问题很奇怪,甚至于 PocoFoundationmt.lib 是在哪里调用的我都不是很清楚。
二、问题解决
这个问题是我的另外一个同事解决的,参考如下社区讨论:
LINK : fatal error LNK1104: cannot open file ‘PocoFoundationmt.lib’
这里主要翻译下 kodikat 回答的一段话:
That error is due to the code generation change you made. Since you changed the project to Multi-thread, all the libraries that OF links to also need to be compiled as Multi-threaded(hence the “mt” postifx). The Poco libraries that come with OF were compiled as Multi-threaded DLL(and have an “md” postfix).
这个错误是你修改了代码生成策略引起的。因为你将代码生成方式修改成了MT,因此所有开放组件(OF)都应该以 MT 方式进行编译链接。之所以引起了这个问题是因为 Poco 库是以 MDd 方式编译的。
果不其然,同事在修改了下项目的:
项目属性 -> C/C++ -> 代码生成 -> 运行库
之后,这个问题就解决了。
这个问题尚有我不能理解的地方,比如这个库为什么会被调用到,以及为什么同样是从 SVN 上下载的代码,只有在同事的电脑上会遇到,而我的电脑上没有遇到…等等这些问题都还待我仔细思考。