モノラルのAC#ファイルはコマンドを使用してコンパイルできますgmcs
。これでファイルが作成されますhello.exe
。
$ gmcs hello.cs
$ ls
hello.cs hello.exe
$ ./hello.exe
Hello from Mono!
Linux実行可能ファイルを生成するためにこのコマンドを試しましたが、エラーが発生しました。
$ gmcs /t:exe hello.cs /out:hello
Unhandled Exception: System.ArgumentException: Module file name 'hello' must have file extension.
実行し、目的の出力を得るために実行できるようにスタンドアロンの実行可能ファイルを作成したいと思います。
$ ./hello
Hello from Mono!
私は次の解決策に言及した解決策を検索して見つけました。MKバンドル:
$ mkbundle -o hello hello.exe --deps
Sources: 1 Auto-dependencies: True
embedding: /home/ed/Projects/hello_world/hello.exe
embedding: /mono/lib/mono/1.0/mscorlib.dll
Compiling:
as -o /tmp/tmp54ff73e6.o temp.s
cc -o hello -Wall temp.c `pkg-config --cflags --libs mono` /tmp/tmp54ff73e6.o
Done
$ ls -l
total 3
-rwxr-xr-x 1 ed users 1503897 2005-04-29 11:07 hello
-rw-r--r-- 1 ed users 136 2005-04-29 11:06 hello.cs
-rwxr-xr-x 1 ed users 3072 2005-04-29 11:06 hello.exe
このユーティリティは私のMonoインストールにはないようです。探してみるとmono-devel
包装にもこんな内容がありましたね。このパッケージをインストールするとは、約82の異なるパッケージをインストールすることを意味します。私の目標は、いつでもモノのインストールを最小限に抑えることです。
mkbundle
独立してインストールする方法はありますか?
答え1
私は辛抱強く、mono-2.0-devel
パッケージにmkbundleがあるかもしれないと思いました。だから私はmono-2.0-devel
18の追加パッケージだけを必要とするインストールを進めました。入力mkb
してTabを押すと表示されますmkbundle2
。
私は試した:
$ mkbundle2 -o hello hello.exe --deps
OS is: Linux
Sources: 1 Auto-dependencies: True
embedding: /home/minato/Projects/Practice/mono/hello.exe
embedding: /usr/lib/mono/2.0/mscorlib.dll
Compiling:
as -o temp.o temp.s
cc -ggdb -o hello -Wall temp.c `pkg-config --cflags --libs mono` temp.o
Done
$ ls
hello hello.cs hello.e hello.exe
$ ./hello
Hello from Mono!
それが私にとって最初に必要なものです。
このcommand-not-found
ツールをご提供いただきありがとうございます。