首页 文章

切换到非调试运行时/ MT会导致链接错误

提问于
浏览
3

我正在尝试将我的可执行文件部署到另一台机器上,所以我需要非调试运行时 .

切换到非调试运行时/ MT会导致链接错误 . / Mtd编译好 . 这是许多错误的抽样 .

1> libcpmtd.lib(_tolower.obj):错误LNK2001:未解析的外部符号_calloc_dbg 1> libcpmtd.lib(locale.obj):错误LNK2001:未解析的外部符号_calloc_dbg 1> libcpmtd.lib(wlocale.obj):错误LNK2001 :未解析的外部符号_calloc_dbg 1> libcpmtd.lib(StlCompareStringA.obj):错误LNK2001:未解析的外部符号_free_dbg 1> libcpmtd.lib(locale.obj):错误LNK2001:未解析的外部符号_free_dbg 1> libcpmtd.lib(wlocale.obj) ):错误LNK2001:未解析的外部符号_free_dbg 1> libcpmtd.lib(xlocale.obj):错误LNK2001:未解析的外部符号_free_dbg 1> libcpmtd.lib(xwcsxfrm.obj):错误LNK2001:未解析的外部符号_free_dbg

如果我明确地告诉链接器与libcmtd.lib链接,它甚至可以用/ MT编译,但这会带来什么后果?

如何让我的代码编译? (不必做上面的伎俩?)

编辑:我用cout注释掉了这些语句并编译了....为什么......

2 回答

  • 3

    您说明确强制libcmtd.lib作为链接器输入 - 这是静态CRT的调试版本,并且正是与/ MT(声明与发布静态CRT的链接的交换机)冲突的根源 .

    从链接器输入中完全删除libcmtd并检查它是否有效 .

  • 4

    从C预处理器中删除_DEBUG定义

相关问题