2016年6月14日更新 :我们更新了 原公告栏 如果您想要一个包含此扩展的所有内容的页面,请使用下面的内容。以下内容保持不变,仅涵盖原始版本的更新。
我们很高兴提供一个更新的VC++forlinux扩展,今天有一个新的版本。 现在就去拿 ( 然后回来 ). 我们已经有一些下降,因为我们的初始版本,使一般性的改进和解决您的反馈。我们将在这里向您介绍此版本中的一些新功能,解释您的反馈如何指导我们,给出一些使用技巧,并向您展示如何在物联网项目中使用Intel Edison板的扩展。
请考虑做这个简短的调查 帮助我们进一步了解如何进行跨平台开发。我们知道有很多不同的Linux系统在很多方面被使用。我们很想听听你如何使用分机。我们也有兴趣直接收到您的来信,所以如果您愿意联系,请在调查中告知我们。直接和人们谈论他们是如何使用它已经极大地帮助了我们,我们希望进一步改进。我们确实希望找到一些人,当我们需要投入或有早期的经验时,我们可以更经常地联系他们。
我们想提醒你的是,事情仍在迅速发展。我们正在更改跟踪连接的文件。在更新时,我们会覆盖不再兼容的现有文件,不幸的是,这意味着任何现有定义的连接都会丢失。我们将停止这样做,因为我们的功能开始稳定和成熟。
控制台窗口
此更新中最明显的变化是我们添加了一个控制台窗口,用于与远程可执行文件进行交互。此窗口不仅显示程序的输出,还可以获取输入。要激活此窗口,请使用菜单Debug,Linux Console。这就是它在行动中的样子。
下面是一个简单的程序,你可以尝试这些功能。
#include <cstdio> void log(char filename[], char visitor[]) { FILE * pLog; pLog = fopen(filename, "a"); if (pLog != NULL) { fputs(visitor, pLog); fputs("", pLog); fclose(pLog); } } int main(int argc, char* argv[]) { if (argc != 2) { printf("Please pass filename as input parameter"); return 1; } char input[20]; printf("What IDE are you using?"); scanf("%19[0-9a-zA-Z ]", input); printf("%s! You can use that with me?!", input); log(argv[1], input); return 0; }
在项目调试属性页上的命令参数输入中指定文件名。您也可以在该页上设置一个工作目录,如果没有设置,您的主目录将是工作目录。
报告的问题
我们要感谢所有向我们报告问题的人。你的反馈非常重要。它不仅仅帮助我们确定我们所知道的事情的优先顺序,它还帮助我们识别和修复我们不知道的事情。我们的第一个更新是处理一个以前从未遇到过的崩溃报告。其他一些事情,如访问被拒绝与只读文件,我们还没有遇到在我们的测试。我们自己可能需要很长时间才能遇到这种情况,但对于向我们报告的源代码管理工作流来说,这是至关重要的。其他一些事情可能是我们意识到的,因为我们知道这些事情很重要,从而提高了它们的重要性。
下面是我们的用户报告的问题示例。你可以在这篇文章的末尾找到一个完整的变更列表。
- 登录时崩溃
- 添加了对已调试进程的工作目录和命令行参数的支持
- 添加了使用项目目录以外的文件的功能
- 修复了上载只读文件时拒绝访问的错误
- 修复以root身份登录
- 修复空输出文件扩展名,现在输出可以没有文件扩展名
再次感谢您的反馈,并不断更新。
详细生成输出
我们已经得到了很多关于到底是什么论点被传递给海湾合作委员会的问题。我们的构建输出并没有让这一点变得明显,但是您可以启用它。有两种方法可以到达同一个地方来更改此设置。在快速输入窗口中搜索“verbosity”,或在 工具、选项 去 项目和解决方案 , 构建并运行 . 现在可以选择 MSBuild项目输出详细信息 把它改成 诊断的 在生成时查看输出窗口中的所有内容。如果您遇到问题,这确实可以帮助您找到传递给GCC来构建程序的确切内容。
获取包含文件
每个人都喜欢IntelliSense,但是我们还没有同步Linux系统中的include文件。每个人都有自己的方式来分享或复制这些文件,这是伟大的。我想和大家分享一个非常简单的方法来完成这个任务,我在准备英特尔爱迪生的下一节时使用了这个方法。我只需使用 PSCP公司 .
pscp -r root@192.168.2.15:/usr/include .
现在在项目属性上转到 VC++目录 页面并添加本地路径。
如何在英特尔爱迪生主板上使用VC++for Linux
在英特尔爱迪生主板上使用VC++for Linux扩展与其他Linux系统基本相同。首先你要确保 按照英特尔的指示安装设备 . 您应该能够通过我们的连接管理器连接到您的爱迪生连接到您的Wi-Fi网络。如果您需要直接连接到爱迪生,请使用以下说明 与爱迪生一起使用USB以太网 这也将与我们的连接管理器。
爱迪生使得用传感器数据构建物联网应用变得很容易。像ArduinoShield open这样的配件可以很容易地连接Seeed工作室的Grove shield等附加组件。该屏蔽允许您使用许多可用的Grove传感器中的任何一个,而不必担心在试验板上布线,您只需直接进入您的代码即可。英特尔使这一点更容易与他们的 UPM传感器库 这涵盖了广泛的传感器,包括格罗夫的。
这里显示的是一个爱迪生计算模块上的Arduino扩展板与格罗夫屏蔽连接和温度传感器插入。
在visualstudio中,创建一个新项目,然后在 风险投资++ , 跨平台 , Linux操作系统 选择 空项目。 在针对Edison时,请确保将解决方案平台设置为x86。向项目中添加C++文件 使用来自Intel的Grove温度示例的代码 . UPM库是Edison上使用的默认YoctoLinux映像的一部分,因此不需要额外的设置来获取它们。您应该更改示例中的include语句以正确引用它们的位置,如下所示:
#include <upm/grove.h>
有了这个更改,就可以构建和运行代码了。在这里,您可以在visualstudio的调试模式下看到这个示例的输出。如果您对第一条输出线感到疑惑,那么这种类型传感器的第一次读数通常会有点偏差。
要启用IntelliSense,请按照上面的说明从Edison本地复制包含文件。目前,我们确实有一个影响此示例的IntelliSense错误,该错误将在将来的更新中修复。
在以后的文章中,我们将通过将此示例连接到Azure IoT Hub来进一步介绍此示例。
变化
我们总是把我们的更改日志贴在t上 Linux扩展的VisualStudioGallery页面 ,但这是自我们最初发布以来的完整记录。
6/6/2016 1.0.3
- 添加了一个控制台I/O工具窗口,用于与从VS启动的远程进程进行交互
- 添加了对已调试进程的工作目录和命令行参数的支持
- 添加了使用项目目录以外的文件的功能
- 工具-选项中系统信息(操作系统/体系结构)的用户界面
- C++ 14支持智能感知错误修复
- 连接到Linux对话框UI错误修复
- Linux连接UI在添加错误修复后删除连接
- 修复了上载只读文件时拒绝访问的错误
- 修复了-xc、-xc++错误并编译为c
- FreeBSD、OSX部分支持,包括连接、编译和链接。尚不支持调试。
- 性能改进
2016年4月14日v1.0.2
- 删除了对Android NDK和Android MDD位的依赖
- 英特尔爱迪生支持和错误修复
- 修复以root身份登录
- 修复了偶尔出现的“4444端口正在使用”
- 修复了“没有这样的文件”错误
- 属性页中的本地和远程端口互不依赖,可以单独提供
- 修复了从Linux连接管理器中删除条目的错误
- 资源管理(泄漏的sshd进程)修复
- “连接”对话框中的常规健壮性修复
- 调试结束时的Gdbserver清理
- 改进的生成诊断和从生成解析链接器错误
- 修复空输出文件扩展名,现在输出可以没有文件扩展名
2016年4月4日v1.0.1
- 修复了登录时的崩溃