0

我必须将 C++ Win32 控制台应用程序移植到 WEC7。在我修复了一些构建和链接错误之后,我能够创建一个在目标上运行的可执行文件。但我无法使用 Visual Studio 调试该应用程序,因为没有命中断点,尽管相应的行已明确执行。

为了进一步调查我的问题,我创建了 2 个新项目:

  1. Win32项目

  2. Win32智能设备项目

两者都包含以下代码:

#include "stdio.h"
void main(void)
{
    int i=0;
    while(1)
    {
        printf("i=%d\n",i);
        i++;
    }
}

此时我可以调试两个项目,一个在我的笔记本上运行 Windows 7,另一个在我的目标上运行 WEC7。现在我已将平台解决方案从项目 1(Win32 项目)更改为我的目标:

  • 从 Win32 平台复制设置

  • 将调试信息格式从 4 设置为 /Zi(不知道 4 来自哪里)

  • 添加了一些 WEC7 预处理器定义

  • 将程序部署到目标并且工作正常(计数器打印在控制台中),与项目 2 没有区别

  • 试图调试程序,但是计数器和printf处的断点没有被命中

我检查了以下设置:

  • 解决方案配置设置为调试

  • 优化已禁用

  • 生成调试信息设置为是

  • 比较了项目 1(我的“转换”版本)和项目 2(Win32 智能设备项目)之间的链接器命令行,但它们是相同的-> 更新:实际上它们根本不一样。不知道我第一次比较了什么,但是在我更新设置后它工作正常。

我已经安装了以下 Visual Studio 更新:

我需要更改特定设置吗?还是我需要改变我的方法?

我主要完成基于模型的软件设计(Mathworks Embedded Coder、dSPACE Targetlink),所以我不熟悉 Visual Studio 和 WEC7 的具体特性。我将非常感谢任何帮助。

4

2 回答 2

0

这解决了我的问题:

  1. 我为 WCE 平台创建了一个新项目(使用模板)并检查了调试是否有效。
  2. 然后我通过比较项目属性中编译器和链接器的“命令行”来检查在我的实际项目中应该使用哪些选项。

有几个不同之处,在我清理它们之后,我的项目运行良好。

谢谢@brightstar

于 2014-10-23T11:19:20.210 回答
-1

VS2008 有几个更新可以在 Windows Embedded Compact 7 上进行调试。你安装了吗?

例如有 http://www.microsoft.com/en-us/download/details.aspx?id=11935

于 2014-08-11T16:11:23.957 回答