我使用Visual Studio 2013制作CLR兼容版本的C ++代码库(' mylibrary.lib')。它已经工作多年了,但突然间我得到了LNK1104'错误,因为Visual Studio正在寻找&m; mylibrarymdd.lib'。
为什么突然间,神奇地攻击“mdd”'到库名称而不是使用我指定的.lib文件?我如何让它停止这样做?
答案 0 :(得分:0)
我找到了两个解决此问题的方法,但不喜欢其中任何一个。希望有人能够解释为什么这些步骤是不必要的,然后突然变得必要。
第一个也是最明显的解决方法是修改依赖项的项目设置,使目标输出文件名与消费项目所期望的相匹配 - 即'mylibrarymdd.lib'。
第二种解决方法是使用“/NODEFAULTLIB:mylibrarymdd.lib”。对于具有自动命名问题的每个依赖项,都需要这样做。
要获得正确的(恕我直言)解决方案,首先需要知道为什么Visual Studio正在创建“mylibraryMDD.lib”的“默认库依赖项”。正如我所说,它之前没有这样做,并且最近没有对Visual Studio或项目文件本身进行更新。
我确实发现'mylibrary'的依赖性发生了变化。它引入了静态OpenSSL库,并对其进行了更新。然而,目前还不清楚这将导致上述行为。