Linux(mono)でVB.NET

grepに一息いれて、今回はVBをさわってみます。

takk@deb9:~$
takk@deb9:~$ sudo apt-get install -y mono-complete

~省略~

mono-complete (4.6.2.7+dfsg-1) を設定しています ...
libc-bin (2.24-11+deb9u3) のトリガを処理しています ...
menu (2.1.47+b1) のトリガを処理しています ...
takk@deb9:~$

インストールできたかバージョン確認。

takk@deb9:~$ mono --version
Mono JIT compiler version 4.6.2 (Debian 4.6.2.7+dfsg-1)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
        TLS:           __thread
        SIGSEGV:       altstack
        Notifications: epoll
        Architecture:  amd64
        Disabled:      none
        Misc:          softdebug
        LLVM:          supported, not enabled.
        GC:            sgen
takk@deb9:~$
takk@deb9:~$ sudo apt-get install -y mono-vbnc

~省略~

man-db (2.7.6.1-2) のトリガを処理しています ...
libmono-microsoft-visualbasic10.0-cil (4.0.1-1) を設定しています ...
mono-vbnc (4.0.1-1) を設定しています ...
takk@deb9:~$

実行してみます。

takk@deb9:~$ vbnc
Visual Basic.Net Compiler version 0.0.0.5943 (Mono 4.0.1 - tarball)
Copyright (C) 2004-2010 Rolf Bjarne Kvinge. All rights reserved.

vbnc : Command line : error VBNC2011: No files to compile! Cannot do anything!
Compilation took 00:00:00.1177000
takk@deb9:~$

ソースを指定していないので、エラーになりますね。

ソースを作ります。

takk@deb9:~$ mkdir vbtest
takk@deb9:~$ cd vbtest
takk@deb9:~/vbtest$

こんなサンプル。

takk@deb9:~/vbtest$ cat -n test.vb
     1  Imports System.Console
     2  Module test
     3          Sub main()
     4                  WriteLine("Hello")
     5          End Sub
     6  End Module
takk@deb9:~/vbtest$

ビルド。

takk@deb9:~/vbtest$ vbnc test.vb
Visual Basic.Net Compiler version 0.0.0.5943 (Mono 4.0.1 - tarball)
Copyright (C) 2004-2010 Rolf Bjarne Kvinge. All rights reserved.

Assembly 'test, Version=0.0, Culture=neutral, PublicKeyToken=null' saved successfully to '/home/takk/vbtest/test.exe'.
Compilation successful
Compilation took 00:00:00.5144010
takk@deb9:~/vbtest$

exeファイルができました。

takk@deb9:~/vbtest$ ls
test.exe  test.vb
takk@deb9:~/vbtest$

PEフォーマットですね。

takk@deb9:~/vbtest$ file test.exe
test.exe: PE32 executable (console) Intel 80386 Mono/.Net assembly, for MS Windows
takk@deb9:~/vbtest$

実行は、monoで。

takk@deb9:~/vbtest$ mono test.exe
Hello
takk@deb9:~/vbtest$

コメント

タイトルとURLをコピーしました