Magicode logo
Magicode
1
6 min read

Carbon Languageをwindows WSL2で動かしてみた

https://cdn.apollon.ai/media/notebox/26b1afed-a193-486a-be9a-4c10396dd26d.jpeg

はじめに

c++の後継を目指す Carbon Language 公開されたので、windows環境で動かしてみた。
getting startedを読むとhomebrewを使っているようだったので、windowsでも動かせるかを確認してみた。
carbon自体の詳細や、getting started の詳細などは今回は触れない。

環境

  • PC
    • windows 10のWSL2でUbuntu 20.04
  • Windows Terminal

作業の流れ

  1. WSL2のセットアップ
  2. Windows Terminalのインストール
  3. Home brewのインストール
  4. Carbonのgetting started

1. WSL2のセットアップ

昔、WSLを使おうとしたときはいろいろと手動でやったが、今はコマンドでぱっとできる模様。
https://docs.microsoft.com/ja-jp/windows/wsl/install
wsl --install
でUbuntuがインストールされます。
自分の環境では、以前にWSLを作っていたため、注意書きにある現象が発生した。
wsl --install を実行して WSL ヘルプ テキストが表示される場合
そのため、下記を実施した。
  1. $ wsl --list --online で使用可能なディストリビューションを確認
  2. $ wsl --install -d Ubuntu-20.04 でUbuntu 20.04をインストール
インストールが完了すると、ubuntuのコンソールが立ち上がり、usernameとpasswordを求められるので、設定する。
そして、パッケージマネージャーを更新する。
$ sudo apt update && sudo apt upgrade

2. Windows Terminalのインストール

必須ではないが、マイクロソフトのドキュメントでwindows terminalの利用が紹介されていたので、せっかくだから入れてみた。
Microsoft Storeからインストールする。
ドキュメントでは、コマンドパレット(ctrl + shift + p)を使っていろいろ設定できそうなことを書いているが、今回はスキップした。

3. Homebrewのインストール

事前準備

事前に必要なパッケージをインストールしておく。
$ sudo apt-get install build-essential curl file git

Homebrew自体のインストール

homebrew のトップページにインストール用のコマンドが書いてあるので、それを実行する。
$/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
==> Installation successful!
でインストール完了。
このログの後に、Next Stepがあるので控えておく。
==> Next steps:
- Run these two commands in your terminal to add Homebrew to your PATH:
    echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> /home/username/.profile
    eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
- Install Homebrew's dependencies if you have sudo access:
    sudo apt-get install build-essential
  For more information, see:
    https://docs.brew.sh/Homebrew-on-Linux
- We recommend that you install GCC:
    brew install gcc
- Run brew help to get started
- Further documentation:
    https://docs.brew.sh

Next steps

PATHの設定

- Run these two commands in your terminal to add Homebrew to your PATH:
    echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> /home/username/.profile
    eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
書いてある通りに実行するだけ。
なお、linux向けインストールドキュメント では微妙に違うが、やりたいことはPATHの設定なので、同じこと。

homebrewの依存パッケージのインストール

事前準備で実施済み

gccのインストール

なくてもいいかもしれないが、推奨されているので実施。
$ brew install gcc

4. Carbonのgetting started

事前準備

先出ししておくと、zlibが見つからなくてエラーになるので、インストールする。
$ sudo apt-get install zlib1g-dev

getting startedの実行

getting-startedに従って実行する。
# Install bazelisk using Homebrew.
$ brew install bazelisk

# Install Clang/LLVM using Homebrew.
# Many Clang/LLVM releases aren't built with options we rely on.
$ brew install llvm
$ export PATH="$(brew --prefix llvm)/bin:${PATH}"

# Download Carbon's code.
$ git clone https://github.com/carbon-language/carbon-lang
$ cd carbon-lang

# Build and run the explorer.
$ bazel run //explorer -- ./explorer/testdata/print/format_only.carbon
しばらく待つと、下記のような出力が出る。
Hello world!
result: 0
format_only.carbon を見ると
fn Main() -> i32 {
  var s: auto = "Hello world!";
  Print(s);
  return 0;
}
とあるので、コマンドで渡したcarbonファイルを実行しているのかな?

補足:エラーについて

事前準備でzlibをインストールしない場合、ビルド時に下記のようなエラーがでる。
external/llvm-project/llvm/lib/Support/CRC.cpp:86:10: fatal error: 'zlib.h' file not found
#include <zlib.h>
こういう時に、ubuntuで足りないパッケージを見つける方法は、こちら が参考になる。
apt-fileというパッケージを使う方法と、Ubuntu パッケージ検索 のサイトを使う方法がある。
例えば、今回のケースだと、検索ページの パッケージの内容を検索zlib.h と入力して検索すると、
図のような結果が得られる。
この情報から、/user/include/zlib.hにあるzlib1g-devをインストールした。

終わりに

今回は、windows上でcarbonのgetting startedを実行するところまでやった。
carbon自体は、rustなどが使える環境であるならそっちを使えという、姿勢で使い時が難しそうだが、
c++環境で、モダンな言語が使えるようになるのは魅力的に見える。
UEとかで動かないかな?

Discussion

コメントにはログインが必要です。