
Ubuntu日本語フォーラム

ログインしていません。
ubuntuでC#の開発環境をいろいろ試したいと思っているのですが、その中で疑問に思ったことを質問させていただきます。
・eclipse+Improve C# Plugin for Eclipse
インストール後コンパイラのパスを /usr/lib/mono/2.0/gmcs.exe にして(ほかはデフォルトのまま)実行しようとしたら「選択は起動できず、最近の起動もありません」と言うエラーが出ます。 mcs.exe や mcs.exe も試して見ましたがうまくいきませんでした。どこをどう設定すればいいのでしょうか?(もしくはもともと動かないのでしょうか?)
・eclipse+emonic
上のプラグインで色々試した後あきらめて他のプラグインを探していたらemonicを見つけたのですが、このページに.NET V2.0 SDK が必要なのでWindows環境でしか使えないとありました。この記事は2008年の時のもののようですが、現在でもその状況は変わっていないのでしょうか?
・sharpdevelop
そのあといろいろと探してみてmonodevelopを見つけ(現時点ではこれが一番良さそうかなと思っています)、その元となったsharpdevelopの存在を知りました。しかしubuntuソフトウェアセンターで検索してみても見つからず、ググってみてもインストール可能という情報はありませんでした(不可能という情報も自分が調べた限りでは見つけられませんでした)。sharpdevelopはlinuxには対応していないのでしょうか?
ちょっと質問が多いですが、わかる範囲でいいので知ってる方がいらっしゃったら情報お願いします。
オフライン
書き忘れたので補足します。現在の自分の環境は
ubuntu 11.10
Mono JIT compiler version 2.10.5
です。
オフライン
dcccxvi による投稿:
インストール後コンパイラのパスを /usr/lib/mono/2.0/gmcs.exe
.exeというのは、マイクロソフト社のOS上での実行ファイル拡張子だと思われますが、どのようにインストールされましたか?
Ubuntu向けのMonoパッケージが用意されているようで、パッケージマネージャーから必要なものはインストール可能なようですが、これをインストールされたのではないのですか?
オフライン
slさん回答ありがとうございます。
mono --versionをを実行したら上記の結果がでましたし、ソースコードも gmcs hogeohge.cs とすればコンパイルできたことからmonoは始めからインストールされているようだったのでとくに自分でインストールはしていません。
オフライン
ファイルシステム全体を検索してみて/usr/bin/gmcs、/usr/bin/mcs、/usr/bin/dmcsなどをみつけpathに指定してみましたが、やはり同じエラーメッセージが出ました。
/usr/bin/gmcs hoge.cs
などとするとコンパイルできるので、これがコンパイラだとおもうのですが...。コンパイラの設定の問題ではないのでしょうか?
オフライン
C#は全くわからないので、サンプルプロジェクト(ソリューション?)をビルドしてみただけですが、monodevelopが普通に動作するようです。
どうしてもeclipseで、ということでなければ、monodevelopをインストールして使っていただくのが一番早いのではないかと思います。
なお、こちらの環境にmonodevelopをインストールしてみたところ、
/usr/bin/mono-csc -> dmcs
となっており、このdmcsはシェルスクリプトで、最終的には、/usr/lib/mono/4.0/dmcs.exeを起動しているようです。
また、
$ file dmcs.exe
としてファイルの種類を確認すると、
dmcs.exe: PE32 executable for MS Windows (console) Intel 80386 32-bit Mono/.Net assembly
と表示され、monoでビルドされたプログラムのようです。
monoをインストールしても、gmcsというファイルはインストールされませんでしたので、どこか他から入手されたものでは無いかと思います。eclipseのプラグインと同時にインストールしたとかでしょうか。
環境をちゃんとインストールすれば動くのかも知れませんが、ソフトウェアセンターからMonoDevelopをインストールする方が簡単かと思います。
# monoをインストールしつつ、eclipseで/usr/bin/dmcsをコンパイラに指定すれば良いのかも知れませんが、
# 確認はしておりません。
オフライン
dcccxviさんへ
MonoDevelopっていう統合環境を使うしかないと思いますよー
オフライン
hmatsueさん、satuki-tricksterさん
お返事ありがとうございます。
monodevelopはもうインストール済みです。かなり使いやすかったのでもうほぼこれで決まりかなと思ったのですが、できれば他の環境と比較したいと思い質問させていただいた次第です。
eclipseでC#の開発環境を構築出来た方がいらっしゃったら情報お願いいたします。
Improve C# Plugin for Eclipseのサイトではlinuxでも動くと書いてあったので動くとは思うのですが...。
ちなみに/usr/bin/mcsの内容はシェルスクリプトのようで、内容は
#!/bin/sh exec /usr/bin/mono $MONO_OPTIONS /usr/lib/mono/2.0/mcs.exe -lib:/usr/lib/mono/2.0 -lib:/usr/lib/mono/3.5 "$@"
とあったので(/usr/bin/gmcsなども同様)、やはりコンパイラは最初指定した/usr/lib/mono/2.0/mcs.exeなどのようです(それを指定しても実効可能かは別として)。
オフライン
とりあえずC# compilerにdmcsを指定するとAutoBuildが走って、バイナリが生成されることまでは確認しました。
ソースは
http://www.fincher.org/tips/Languages/csharp.shtml
から頂いたHelloWorldです。
# 生成されたバイナリをeclipse内で実行する方法がわからなかったです。。
# C/C++開発プラグインが入っていればC/C++は何も迷わずに実行できるのですが、C#のプラグインはそこまで面倒見てくれないのかしら。
# もちろん端末からなら実行可能です。
【手順】
1. Ubuntu Software Centreからmonodevelopを導入
2. 同上でeclipseを導入
3. eclipseのプラグイン導入で、
http://www.improve-technologies.com/alpha/updates/site.xml
からプラグインを導入。
複数ファイルからなるプロジェクトのビルド方法など、不明点多数です。。
オフライン
hmatsueさんお返事ありがとうございます。
hmatsue による投稿:
とりあえずC# compilerにdmcsを指定するとAutoBuildが走って、バイナリが生成されることまでは確認しました。
C# compilerにdmcsを指定というのは、「ウィンドウ」→「設定」→「C# Preferences」から「Set the C# compiler path」を「/usr/bin/dmcs」にしたということでしょうか?
そうだとしたら、そこまでは自分もやったのですが、F11で実行しようとすると前述のとおり「選択は起動できず、最近の起動もありません」と言うエラーが出て、バイナリファイルも生成されません。
また、書いていただいた【手順】の1番でmonodevelopをインストールする意味はなんでしょうか?(自分もmonodevelopをインストールしているのですがその前後で状況が変化した記憶はありませんでしたので)
ちなみに、windows機のeclipseでもImprove C# Plugin for Eclipseいれてみたのですが、同じエラーが出ました(コンパイラーのpathは「C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe」です)。これはプラグイン自体に問題があるということなのでしょうか?
オフライン
dcccxvi による投稿:
C# compilerにdmcsを指定というのは、「ウィンドウ」→「設定」→「C# Preferences」から「Set the C# compiler path」を「/usr/bin/dmcs」にしたということでしょうか?
eclipseをUbuntu Software Centreからインストールすると、英語メニューがデフォルトになっていましたので、
Window -> Preferences -> C# Preferences
のSet the C# compiler path:
の設定となりますが、同じものを指していると考えます。
dcccxvi による投稿:
そうだとしたら、そこまでは自分もやったのですが、F11で実行しようとすると前述のとおり「選択は起動できず、最近の起動もありません」と言うエラーが出て、バイナリファイルも生成されません。
これは前回、バイナリをeclipse内で実行する方法が判らなかった、と書いた部分に相当するかと思います。
ソースファイルの名前が、hello.csであったとすると、これを保存するタイミングで自動的にコンパイルされて、hello.exeというバイナリが生成されました。
dcccxvi による投稿:
また、書いていただいた【手順】の1番でmonodevelopをインストールする意味はなんでしょうか?(自分もmonodevelopをインストールしているのですがその前後で状況が変化した記憶はありませんでしたので)
/usr/bin/dmcs
は、
$ dpkg -S /usr/bin/dmcs mono-dmcs: /usr/bin/dmcs
のように、mono-dmcsからインストールされるコンパイラです。依存関係を満たせば、monodevelopをインストールせずとも、mono-dmcsパッケージと、それが依存するパッケージ類をインストールするだけもコンパイルはできるかと思います。
どうもサイトの説明からするとプロジェクトは未実装のようで、ファイル毎に設定をしなければならないようです。
開発自体、2004年頃から停滞しているようなので、ちょっと実用的なものでは無いような気がします。
オフライン
hmatsueさん
長文での回答ありがとうございます。やはりeclipseでのC#開発は現実的ではなさそうですね。おとなしくmonodevelopを使うことにします。
どうもありがとうございました。
オフライン