我正在为远程设备(实际上是带有Armbian Legacy Server -- Debian Jessie的Orange Pi Zero)编写C代码。需要明确的是,所有编译都在Linux远程设备上进行。我正在尝试为设备编写C代码程序。让我们开始simple

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

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

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

效果很好。到现在为止还挺好。 Shell编辑器适用于小文件,但是当事情变得复杂时,这很痛苦。我想要在台式机上复制我所写的内容。因此,我尝试使用Microsoft Visual Studio(社区版2015,更新3)进行此操作。我正在https://blogs.msdn.microsoft.com/vcblog/2016/03/30/visual-c-for-linux-development/上关注本教程。该教程似乎是相对最新的,有点。我加载Visual C++ for Linux Development extension。注意事项之一是我没有使用从VisualGDB.com购买的软件包。相反,我通过以下方式将以下依赖项下载到远程设备:
sudo apt-get install openssh-server g++ gdb gdbserver

我通过模板-> Visual C++->跨平台-> Linux在Visual Studio中创建一个项目,然后选择“空项目”。我将所有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

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

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设备上正确加载和编译。就我而言,我一直在为Raspberry Pi使用通用输入/输出(GPIO)WiringPi库,可用herehere。对于Orange Pi的WiringOp库,请检查here

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

另一个需要注意的注意事项:如果您没有在目标Linux远程设备上编译正确的库,则在尝试运行程序时在Visual Studio中收到的错误消息有些含糊。您将看到“严重错误:connectionPi.h:没有这样的文件或目录。”并非完全清楚该消息是指远程设备上缺少内容。

注意:这是a write up on using Visual Studio with a C program for a Raspberry Pi.

关于c++ - Visual Studio C/C++如何与远程设备一起使用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41480412/

10-12 00:33
查看更多