Visual Studio C/C++如何使用远程设备

How does Visual Studio C/C++ work with remote device?

本文关键字:何使用 Studio C++ Visual      更新时间:2023-10-16

我正在为远程设备编写C代码(实际上是一个带有Armbian Legacy Server的Orange Pi Zero——Debian Jessie)。需要明确的是,所有编译都发生在Linux远程设备上。我正在尝试为该设备编写C代码程序。让我们从简单开始。

#include <stdio.h>
int main() {
printf("nHello World!!n");
int number = 15;
printf("15 = %dn", number);
return 0; 
} 

现在我知道我可以SSH到设备,登录,创建一个helloWorld.c文件,并将代码粘贴到那里(通过nano helloWorld.c)。然后我可以用在设备上编译代码

gcc helloWorld.c -o helloWorld

然后,我可以从SSH控制台通过bash/shell命令运行可执行文件:

./helloWorld

效果很好。到目前为止,一切都很好。shell编辑器适用于小文件,但当事情变得复杂时,这是一种痛苦。我想要一份我在桌面上写的东西。因此,我尝试使用Microsoft Visual Studio(Community Edition 2015,更新3)来完成这项工作。我在上学习教程https://blogs.msdn.microsoft.com/vcblog/2016/03/30/visual-c-for-linux-development/这个教程看起来是相对最新的,有点像。我加载了Visual C++for Linux开发扩展。需要注意的一点是,我没有使用从VisualGDB.com购买的软件包。相反,我通过将以下依赖项下载到远程设备

sudo apt-get install openssh-server g++ gdb gdbserver

我在Visual Studio中通过模板-->Visual C++-->跨平台-->Linux创建了一个项目,然后选择空项目。我将所有SSH登录信息加载到Visual Studio。我可以构建/编译这个项目。当我这样做,然后SSH到远程Linux设备时,我可以看到在我的根目录中添加了一个projects文件夹。

projects directory
helloWorld directory
bin directory
ARM directory
Debug directory
helloWorld.out file  <--- ./helloWorld.out works!
obj directory
ARM directory
Debug directory
helloWorld.o file
helloWorld.c file

我可以通过在桌面上逐步执行代码来调试项目。我可以观察变量,在调试模式下看到很棒的东西。有几件事我就是不明白。

1) 当我从桌面Visual Studio"运行"代码时,我看不到任何输出。输出窗口是空白的。(我可以通过SSH连接到Linux服务器bin目录,然后运行./helloWorld.out,在SSH解释器屏幕上看到一切。)提示:如果我可以成功地远程执行代码,难道我就不能远程看到输出吗?我应该在Visual Studio中看到输出吗?

2) 尚不清楚如何添加添加链接资源以便从Visual Studio进行编译。(如果我通过SSH连接到设备,我只需键入gcc helloWorld.c -o helloWorld -lwiringPi来添加额外的资源。)如何在Visual Studio中添加额外的链接资源?

经过一番复习,我发现了上面发布的两个问题的答案。

1) 控制台窗口从顶部菜单,调试-->Linux控制台

2) 链接的资源。

首先确保在远程Linux设备上正确加载和编译库。在我的情况下,我一直在使用通用输入/输出(GPIO)WiringPi库用于树莓派,可在此处或此处获得。有关Orange Pi的WiringOp库,请查看此处。

要在Visual Studio中添加库引用,请从顶部菜单"项目"->"属性"->"链接器"->"输入"开始。在标题为"Library Dependencies"的块中,您将添加库名称,在我的例子中是"wiringPi"。这会生成命令行,告诉系统在远程设备上查找该库。所需的文件实际上位于远程Linux设备上的/usr/local/lib(通常是xxx.so文件)。

另一个有趣的注意事项是:如果你没有在目标Linux远程设备上编译正确的库,那么当你试图运行程序时,在visualstudio中收到的错误消息有点神秘。你会看到"致命错误:wiringPi.h:没有这样的文件或目录。"这条消息指的是远程设备上丢失的内容,这一点并不完全清楚。

注意:这是一篇关于使用Visual Studio和C程序制作树莓派的文章。

相关文章: