【问题标题】:NetBeans Remote Development with additional configuration具有附加配置的 NetBeans 远程开发
【发布时间】:2013-08-21 09:43:45
【问题描述】:

我正在尝试使用 NetBeans (7.3.1) 处理远程项目。

我的配置如下:

  • 我的本地计算机是一台 Windows 7 笔记本电脑。它没有任何工具。特别是既不是编译器也不是调试器。但它确实具有例如 NetBeans IDE 和 PuTTY。
  • 源代码、Make 脚本和(最终)构建结果位于跨服务器和“本地”共享的远程存储上。 (我可能会切换到单服务器存储,因为它更快,但我认为这根本不重要。)
  • 我正在使用SSHFS Manager 访问它。 SSHFS Manager 获取服务器名称、服务器上的路径、用户名和 SSH 私钥。结果,它将该目录作为 Windows 上的磁盘安装在服务器上。这工作正常。 (虽然一些目录,可能是链接,在 Windows 资源管理器中表示为文件,但我不知道这是否重要......)
  • NetBeans 项目位于本地计算机上,但我认为这并不重要,我也可以远程放置它。但我更愿意让它“脱离源代码”,这样我就不必在版本控制中添加任何忽略。
  • 在 NetBeans 中,我执行了Remote Developement Tutorial 中描述的过程。这似乎是成功的。 NetBeans 连接到服务器并找到 GNU Compiler Collection。
  • 然后我使用 File | 添加项目新项目...,有 C/C++ |具有现有源的 C/C++ 项目。这似乎是成功的。所有文件和所有员工都可见。

然而,问题是我们的工作“程序”要求我们首先设置环境。因此,例如,当我使用 PuTTY 登录时,我必须首先使用正确的参数调用 setsee。这会通过添加大量变量来严重影响环境,例如:

  • GCC_HOME 设置为 /opt/gcc/linux64/ix86/gcc_4.3.2-7p3,与 NetBeans 在其 GNU Compiler Collection for C++ Compiler 中显示的 /user/bin/g++ 不同,
  • CPLUS_INCLUDE_PATH 指向某个路径(而 NetBeans 没有看到很多包含,可能缺少该路径)。

那么有没有办法告诉 NetBeans 在执行其他任何操作之前调用远程服务器上的setsee

【问题讨论】:

    标签: c++ netbeans remote-server


    【解决方案1】:

    原来setsee 或多或少是一个内部工具。然而,“核心问题”仍然存在:如何在 IDE 实际使用该脚本之前,代表 IDE 创建的 SSH 会话执行任意脚本。

    Answer 到“How can I set environment variables for a remote rsync process?” 超级用户的问题说明了一切。

    简而言之:在 ~/.ssh/authorized_keys 中,必须修改与 IDE 将登录的密钥相对应的条目。必须添加一个 command 参数,该参数是要执行的脚本在登录之后但在“返回控制权”之前。

    还有与该解决方案相关的另一件事。如果要在 command 选项中执行的脚本输出任何内容,它将破坏许多工具(可能还有 IDE)。无论被调用的工具做什么,此类工具通常都期望输出。解析此类输出失败,然后解析 command 脚本输出的内容。

    一个简单的解决方案是使用tail。但这样做的缺点是你失去了“进步”。冗长的操作看起来就像挂起,然后一口气输出所有内容。同样在某些情况下它根本不起作用(例如,如果command 脚本输出任何内容,则通过 SSH 在 Tortoise Git 上执行 git clone --progress 将失败)。

    【讨论】:

      猜你喜欢
      • 2013-01-06
      • 1970-01-01
      • 1970-01-01
      • 2022-11-24
      • 1970-01-01
      • 2012-10-28
      • 2021-09-30
      • 2011-12-05
      • 1970-01-01
      相关资源
      最近更新 更多