【问题标题】:Windows CE 6.0 and runtime link to Debug DLL /MDdWindows CE 6.0 和运行时链接到 Debug DLL /MDd
【发布时间】:2013-04-11 22:19:57
【问题描述】:

我在 x86 PC 上使用 Windows CE 6.0 R3。我已经为平台构建了 NK.bin 和 SDK。但是我有一些问题要了解如何使用 /MTd(调试 DLL)构建控制台应用程序。

如果我尝试构建这个:

// main.c with /MDd
#include <stdio.h>
int main(int argc, char* argv[])
{
    printf("Hello World\n");
    return 0;
}

这工作完美,但是

// main.cpp /MDd
#include <iostream>
int main(int argc, char* argv[])
{
    std::cout << "Hello World\n";
    return 0;
}

构建但应用程序“崩溃”。似乎调试版本中的 C++ STD 共享库在目标平台上不存在,但 CRT 的调试版本存在。

为链接到调试版本的 c++ 库的 windows ce 6.0 构建 C++ 应用程序,我该怎么做?

为链接到调试版本的 c++ 库的 windows ce 6.0 构建 C++ 应用程序,我该怎么做?我是否必须更改我的平台构建器?

【问题讨论】:

  • crt 的调试版本如何在您的目标上结束还不是很清楚,它不应该存在。您也不允许复制它。只部署程序的发布版本。

标签: c++ windows-ce


【解决方案1】:

发现问题。问题是 VS 2008 不支持 CRT 的调试版本,所以我必须在目标平台上手动部署 msvcr90d.dll。 msvcr90d.dll 位于 $(VCInstallDir)/ce/bin/$(ARCHFAM)。

【讨论】:

  • 我认为这是默认情况下不存在的一个很好的理由,即许可证不允许您分发调试库。请注意,您也可以在 CE 可执行文件上使用dependencywalker,例如coredll.dll 将始终显示为缺失。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-30
  • 1970-01-01
  • 1970-01-01
  • 2014-02-02
相关资源
最近更新 更多