首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Visual Studio C++ -链接LIBCMT.lib和LIBCMTD.lib (调试版)

Visual Studio C++ -链接LIBCMT.lib和LIBCMTD.lib (调试版)
EN

Stack Overflow用户
提问于 2013-08-07 16:01:26
回答 1查看 13.5K关注 0票数 4

我想在Visual Studio2008中将我的项目编译并链接为调试项目(MTd)。该项目包括几个外部dll,其中一个dll是可用的非调试版本(MD和MT版本)。现在,如果我尝试链接我的项目,它要么显示在LIBCMT.lib和LIBCMTD.lib中重新声明内容,要么我尝试不允许非调试版本(/NODEFAULTLIB:LIBCMT),它缺少符号。

现在我可以使用所有外部库的MT版本,但由于相同的错误,我仍然无法将其编译并链接为MTd版本来调试我的项目。

另一种方法(在我看来)是允许重新定义,我认为@ gnu编译器/链接器是可能的,但我在visual studio的c++中找不到任何关于这方面的东西。

对如何处理这个问题有什么想法吗?(请记住:无法将外部dll编译为debug-dll)

作为一个额外的一般性问题:是否有可能创建一个使用非调试dll的调试项目?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-07 16:39:35

看起来“正确”的解决方案应该是用相同的参数(MTd)重建所有的外部库。正如我所说的,这是不可能的。我通过不忽略任何defaultlib解决了这个问题。相反,我找到了我要找的参数。在链接器选项中-我添加了额外的行:/FORCE -这忽略了符号的重新定义。这不是一个完美的解决方案,可能对任何项目都不起作用--但这仍然比没有好……

此外,我还必须将Incremental Link设置为NO,否则embed.manifest将无法正确构建(尽管我已经了解到这也可能是一个反病毒问题)。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18097839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档