1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

V言語の環境構築からプロジェクト作成まで

Posted at

以前から気になっていたV言語を触ってみました。

インストール

WSL2のUbuntu 20.04上にインストール。
公式のインストール方法通りで問題ないと思います。ただ私はインストールディレクトリを指定したかったので、以下コマンドでインストール、問題なく完了。

sudo mkdir -p /opt/v
sudo chmod 777 /opt/v
git clone https://github.com/vlang/v /opt/v
cd /opt/v && make
sudo ln -s /opt/v/v /usr/bin/v
v --version     # V 0.3.4 814d682

上記コマンドはDocker上に構築されている以下を参考にさせていただきました。なおV言語を利用するユーザは書き込み権限まで含めて必要とのこと。
https://celtislab.net/archives/20230417/vlang-programming-environment/#toc_h42

Hello World

プロジェクトを作成し、コーディング、コンパイル、実行までを確認します。

プロジェクト作成

$ mkdir ~/workspace/v
$ cd ~/workspace/v
$ v init
Change the description of your project in `v.mod`
Complete!
$ ls
src  v.mod
$ ls src/
main.v

v initだとカレントディレクトリにプロジェクトを作成しますが、v new <プロジェクト名>だとディレクトリも作ってくれるとのこと。

コーディング

v initの時点でコーディング完了してた。。。

$ cat src/main.v
module main

fn main() {
        println('Hello World!')
}

実行

$ v run .
Hello World!

簡単ですね!

コンパイル

runのコマンドを指定せず、ファイルパスだけ指定すればビルドしてくれます。

$ v .
$ ls -lh
total 664K
drwxr-xr-x 2 shun shun 4.0K May 13 23:15 src
-rwxr-xr-x 1 shun shun 654K May 13 23:18 v
-rw-r--r-- 1 shun shun   83 May 13 23:05 v.mod

ん?実行ファイル654KBもあるぞ?実行ファイルのサイズはちっちゃいと昔謳ってたような気がしましたが、と思ったらリリースビルドしてませんでした。
あとガベージコレクションはデフォルトでONなようなので、一旦オフにしてみます。

$ v -prod -gc none .
$ ls -lh
total 104K
drwxr-xr-x 2 shun shun 4.0K May 13 23:15 src
-rwxr-xr-x 1 shun shun  96K May 13 23:49 v
-rw-r--r-- 1 shun shun   83 May 13 23:05 v.mod

96KBは思ってたより大きいですね。他にもオプションが必要なのかもしれませんがヘルプにも書かれていないオプションがあったりということでとりあえずここまで。
これから色々触っていきますが、現時点でNimと比べてどうなのかとかも評価していきたいですね。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?