0

Windows 7 Professional SP1 で Code::Blocks をセットアップして、Linux サーバーでリモート コンパイル (PuTTY リンク -> plink を使用) を実行できるようにしようとしていますが、そのトピックについてあまり詳しくありません。これは私が使用したマニュアルです:

http://wiki.codeblocks.org/index.php?title=Using_Xming_for_remote_compilation

コード ブロックを次のように構成しました。


設定 -> コンパイラとデバッガ -> グローバル コンパイラ設定 -> ツールチェーン実行可能ファイル:

Program Files -> Make program: plink.exe


プロジェクト -> プロパティ -> プロジェクト設定:

メイクファイル: makefile_name

[チェック済み] これはカスタム makefile です

実行方向: Z:\Path\to\Samba\Share


プロジェクトのビルド オプション -> デバッグ -> "Make" コマンド:

プロジェクト/ターゲットをビルドします。

$make -X -ssh user@linux_server -pw my_great_password make -f $makefile -C /path/to/my/makefile

単一のファイルをコンパイルします。

$make -X -ssh user@linux_server -pw my_great_password make -f $makefile -C /path/to/my/makefile $file

クリーン プロジェクト/ターゲット:

$make -X -ssh user@linux_server -pw my_great_password make -f $makefile clean -C /path/to/my/makefile

再構築が必要かどうか尋ねます。

$make -X -ssh user@linux_server -pw my_great_password make -q -f $makefile -C /path/to/my/makefile

サイレントビルド:

$make -X -ssh user@linux_server -pw my_great_password make -s -f $makefile -C /path/to/my/makefile

ところで、Linux サーバー上でコンパイラ/リンカーを呼び出すのですか、それとも Code::Blocks 自体が Linux サーバー上でソースをコンパイルおよびリンクしているのでしょうか? 私の無知を許してください。


私が今直面している問題は、メイクファイルの環境変数にアクセスできないことです:

include $(MY_ENV_VAR)/path/to/another/makefile

MY_ENV_VAR私が受け取ったエラーは、空のままであると仮定しましょう:

/path/to/another/makefile: No such file or directory

Code::Blocks が Windows コンピューターの環境変数を解決しようとするかどうかを確認しましたが、そうではありません。


追加情報:

コード::ブロックのバージョン:

Version: 10.05, Build: May 27 2010, 19:10:05 - wx2.8.10 (Windows, unicode) - 32 bit

Linux サーバー:

Linux linux_server 2.6.18-238.el5 #1 SMP Sun Dec 19 14:22:44 EST 2010 x86_64 x86_64 x86_64 GNU/Linux

必要に応じて、さらに情報を提供できます。また、Windows から Linux マシンでリモート コンパイルを実現するための他の提案も歓迎します。それとも、別の IDE がリモート コンパイルに適しているのでしょうか?

読んでくれて/助けてくれてありがとう。


編集:

NetBeans IDE で同様の問題を抱えている人を見つけました。

http://forums.netbeans.org/topic37974.html

4

1 に答える 1

0

このstackoverflowの投稿fixunixの投稿によると、パテを介して接続した場合、plinkは起動スクリプトを実行しません。だから私は、リモートコンパイルを試みている間、Code::Blocksが私の困難に関して無実であることに気づきました。

私の場合、~/.login環境変数にアクセスするには、ログインスクリプトを明示的に取得する必要がありました。makeコマンドの場合、これはたとえば次のことを意味します。

$make -X -ssh user@linux_server -pw my_great_password "source ~/.login;make -f $makefile" -C /path/to/my/makefile

このようにして、私のソフトウェアをリモートコンパイルすることができました。アプリケーションを起動するために、ビルド後の手順を追加しました。

cmd /c "C:\Program^ Files\PuTTY\putty.exe -load my_session -pw my_great_password"

パスワードでは、アンパサンド文字をエスケープする必要が^&ありました:(ちなみに、ハードコードされたパスワードの代わりに秘密鍵を使用する理由はたくさんあります)。これにより、次のリモートコマンドを持つ保存されたPuTTYセッションがロードされます。

source ~/.login;/path/to/my/application/my_application;$<

私はCシェルを使用しています。そのため$<、以前はユーザー入力(Enterキー)を待っていました。これで、ビルドボタンを押すことでアプリケーションをコンパイルして実行できます。これが他の人がリモートコンパイル用にCode::Blocksを構成するのに役立つことを願っています。さらに問題が発生した場合、または追加情報/アドバイスを提供したい場合は、コメントを残してください。

于 2012-05-25T08:56:16.690 に答える