使用 Visual Studio 测试 intel galileo 示例
Posted
技术标签:
【中文标题】使用 Visual Studio 测试 intel galileo 示例【英文标题】:Testing intel galileo examples with Visual Studio 【发布时间】:2014-09-23 01:31:27 【问题描述】:尝试从http://ms-iot.github.io/content/16x2LCD.htm 在 Intel Galileo 上运行一些示例代码
基本上只是将字符写入 LCD 模块。 LiquidCrystal 库不适用于 Visual Studio,因为来自不同库的复合类。基本上我得到编译错误 C2653 和其他一些错误,因为类 Print 和对象 print 用于不同的类并复合。任何人都知道修复错误的方法
error C2011: 'Print' : 'class' type redefinition
class Print
private: int write_error;
error C2039: 'print' : is not a member of 'LiquidCrystal'
lcd.print("Hello!");
error C2504: 'Print' : base class undefined
class LiquidCrystal : public Print public:
error C2873: 'write' : symbol cannot be used in a using-declaration,
using Print::write;
error C2027: use of undefined type 'Print'
using Print::write;
error C2873: 'write' : symbol cannot be used in a using-declaration
using Print::write;
我认为问题是由于命名空间未被识别,并且在 LCD 类中使用 Print.h 使用 Print 写入 LCD 显示器被过度使用。
如何在 LCD 类中调用 Print 的函数,这样每次调用 Print.h 时都不会重新定义?
【问题讨论】:
欢迎堆栈溢出!除了错误之外,您可能还需要包含一些导致错误的代码,以帮助人们缩小问题范围。 【参考方案1】:http://sixfortyfour.wordpress.com/2014/09/26/displaying-intel-galileo-ip-address-on-a-16x2-lcd/ 作为快速修复,我修改了 Print.h 和 Stream.h,这些文件位于 Galileo Project Folder\packages\Microsoft.IoT.Galileo.Arduino.1.0.5\build\native\include 中。对于 Print.h,我添加了:
#ifndef _PRINT_H
#define _PRINT_H
class Print
// Rest of print class
#endif
对于 Stream.h 我改变了:
enter code here
class Stream : public Print -> class Stream
我检查了 github 存储库,Print.h 包含更改,Stream.h 仍然继承自 Print (https://github.com/ms-iot/galileo-sdk/tree/develop/source)。
我还修改了 RS、ENABLE、D0、D1、D2、D3 以匹配我用于 netduino 项目的 LCD 配置。
【讨论】:
以上是关于使用 Visual Studio 测试 intel galileo 示例的主要内容,如果未能解决你的问题,请参考以下文章
Intel parallel studio 2017 集成在visual studio 2013 中,现在如何集成到visual studio 2015
是否可以使用 Visual Studio 编写 intel 程序集?