1

NetBeans (7.3.1) を使用してリモート プロジェクトで作業しようとしています。

私の構成は次のとおりです。

  • 私のローカル マシンは Windows 7 ラップトップです。ツールはありません。特に、コンパイラもデバッガもありません。ただし、たとえば、NetBeans IDE と PuTTY があります。
  • ソース コード、Make スクリプト、および (最終的には) ビルド結果は、サーバーと「ローカル」間で共有されるリモート ストレージに配置されます。(単一サーバーのみのストレージの方が速いので切り替えるかもしれませんが、それはまったく問題ではないと思います。)
  • SSHFS Managerを使用してアクセスしています。SSHFS Manager は、サーバー名、サーバー上のパス、ユーザー名、および SSH 秘密鍵を受け取ります。その結果、そのディレクトリをサーバー上のディスクとして Windows にマウントします。これはうまくいきます。(一部のディレクトリ、おそらくリンクは、Windows エクスプローラーではファイルとして表示されますが、それが重要かどうかはわかりません...)
  • NetBeans プロジェクトはローカル マシンにありますが、それは問題ではないと思います。リモートに配置することもできます。しかし、バージョン管理に無視を追加する必要がないように、「オフソース」のままにしておくことをお勧めします。
  • NetBeans では、Remote Development Tutorialで説明されている手順を実行しました。成功したようです。NetBeans がサーバーに接続され、GNU コンパイラ コレクションが見つかりました。
  • 次に、ファイル | を使用してプロジェクトを追加しました。新しいプロジェクト...、そこに C/C++ | 既存のソースを使用する C/C++ プロジェクト。成功したようです。すべてのファイルとすべての譜表が表示されます。

ただし、問題は、作業の「手順」で最初に環境をセットアップする必要があることです。たとえば、PuTTY でログインするときは、最初setseeに適切な引数を指定して呼び出す必要があります。そして、たとえば次のような多くの変数を追加することで、環境に大きな影響を与えます。

  • GCC_HOMENetBeans が C++ コンパイラの GNU Compiler Collection で示しているのとは/opt/gcc/linux64/ix86/gcc_4.3.2-7p3対照的に、これは に設定されています。/user/bin/g++
  • CPLUS_INCLUDE_PATHこれは何らかのパスを指しています (NetBeans では多くのインクルードが表示されませんが、おそらくそのパスが不足しています)。

他のことをする前に、 NetBeans にリモートサーバーを呼び出すように指示する方法はありsetseeますか?

4

1 に答える 1

1

setseeそれは多かれ少なかれ内部ツールであることが判明しました。しかし、IDE によって作成された SSH セッションに代わって、IDE が実際にそのスクリプトを使用する前に、任意のスクリプトを実行する方法という「核となる問題」が残っています。

「<a href="https://superuser.com/questions/207200/how-can-i-set-environment-variables-for-a-remote-rsync-process">環境変数を設定するにはどうすればよいですか」への回答リモートrsyncプロセスの?」</a>スーパーユーザーに関する質問がすべてを物語っています。

簡単に要約すると、~/.ssh/authorized_keys で、IDE がログインするキーに対応するエントリを変更する必要があります。そこにcommand、ログイン後に実行されるスクリプトであるパラメータを追加する必要があります。コントロールを返す」。

そのソリューションに関連する別のこともあります。オプション内で実行されるスクリプトがcommand何かを出力すると、多くのツール (おそらく IDE も同様) が壊れます。このようなツールは、多くの場合、呼び出されたツールが行うことは何でも出力に期待します。commandそのような出力の解析は、スクリプトの出力に失敗します。

簡単な解決策は、 を使用することtailです。しかし、そのデメリットは「進歩」を失うことです。長い操作はハングしたように見え、すべてを一度に出力します。また、単純に機能しない場合もあります (たとえばgit clone --progress、Tortoise Git で SSH を介して実行すると、commandスクリプトが何かを出力すると失敗します)。

于 2013-09-10T22:27:58.073 に答える