HI,
如果我尝试在发布模式下构建和链接我的应用,我收到了链接器错误:
错误72错误LNK2001:未解决 外部符号“public:__ thiscall MyModels :: MT6 :: MT6(双)” (?? 0MT6 @ MyModels @@ QAE @ N @ Z)C:\ Martin \ Programing \ WoknaTest \ WoknaTest \ DXForm.obj WoknaTest
在调试模式下一切正常......可能出现什么问题?
由于
答案 0 :(得分:5)
从它在调试配置中成功构建的事实来看,我的第一个建议是检查提供给链接器的其他依赖项。此设置将Additional Dependencies
设置为Project -> Properties -> Configuration Properties -> Linker -> Input
。假设没有调试构建特定的库名称,请确保此设置与调试配置下的设置匹配。
答案 1 :(得分:3)
我在项目设置中检查所有.lib包含和dll都包含在Release和Debug模式中。
对此的解决方案可能是在某个地方链接的项目设置(.lib .dll或路径包含),但我无法确切地告诉您信息的确切位置。你提供了。
答案 2 :(得分:2)
最有可能的版本(假设您没有手动编辑项目设置)是您的代码引用了一些库,而您没有库的发行版本。通常,链接器引用带有“d”后缀的库以进行调试,而不使用它进行发布。
例如:您的解决方案中有一个项目VectorMath。默认情况下,该项目在debug config和vectormath.lib中构建库vectormathd.lib。如果您的依赖项被搞砸了,并且您从未构建了vectormath的发布版本,那么您将在发布版本中构建您的主项目,它将寻找您不会拥有的vectormath.lib - 因此未解析的外部符号。解决方案是确保所有项目都以发布模式构建,或者修复依赖项以让VS为您执行此操作。
答案 3 :(得分:0)
对我来说,这始终是这2种解决方案: