我想在 Visual Studio 2008 中编译和链接我的项目作为调试项目 (MTd)。该项目包括几个外部 dll,其中一个 dll 与可用的非调试版本(MD 和 MT 版本)一样。现在,如果我尝试链接我的项目,它要么说重新声明 LIBCMT.lib 和 LIBCMTD.lib 中的东西,要么如果我尝试不允许非调试版本 (/NODEFAULTLIB:LIBCMT) 它缺少符号。
现在我可以使用所有外部库的 MT 版本,但由于同样的错误,我仍然无法将其编译并链接为 MTd 版本来调试我的项目。
另一种方法(在我看来)是允许重新定义,我认为这是可能的@gnu 编译器/链接器,但我在 Visual Studio 的 c++ 中找不到任何关于此的信息。
关于如何处理这个问题的任何想法?(请记住:无法将外部 dll 编译为调试 dll)
作为一个额外的一般性问题:是否甚至可以创建一个使用非调试 dll 的调试项目?