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?

GhostBSDでEiffelを動かしたい(その前にCのプログラムをコンパイルしたい)

Posted at

はじめに

FreeBSD(にしようかと(以下略)を読んで、GhostBSDをインストールした人が次にやりたいと思うことはもちろんプログラムのコンパイルでしょう。でも、最近のGhostBSDでは、えっ!?、となりますので、それを解決するまでの記録です。
ここでは対象としてLiberty Eiffelのコンパイラー一式のコンパイルを目標にします。が、「Liberty Eiffelのコンパイラー」って基盤部分はCで書かれていますので、Cのプログラムをコンパイルしたいなと思った場合一般に役立つはずです。
あと、以下のコマンドの中には普通はsudo1が必要になるものがあるかと思いますが、敢えて付けていません。(マネするのはいいけど、考えてマネしてね、ということで。)

最初の試み

$ git clone git://git.sv.gnu.org/liberty-eiffel.git
$ cd liberty-eiffel/
$ pkg install boehm-gc
$ ./install.sh 

ほとんどの行は自明かと思います(Gitで本家から持ってきて、展開されたディレクトリに移動して、インストール、と)。3行目はやらなくてもいいのですけど、インストール時に警告が出ますので先にやっておきます。(これはガベージコレクタでして、なければないでコンパイルはできます。ただ、FreeBSD/GhostBSDにはパッケージで用意されていて、導入は簡単ですから、ここでやっています。)

stdio.hがない!?

これでインストールできて欲しいところですよね。が、いきなりエラーになりました。エラメッセージを読むと stdio.hがない ということのようです。 えっ?stdio.hがない!? 一体どういうことでしょうか。
「Liberty Eiffelのコンパイラーなんてニッチなものをコンパイルしようとしているのが悪いんだ」と思った方、そうではないのです。C で "hello world" とでも出力するプログラムを作ってコンパイルしてみましょう。(超有名なプログラムだと思うので、プログラム自体はここには載せませんよ:smile:

cc hello.c

同じく stdio.hがない というエラーでコンパイルできません。

解決策

最近のGhostBSDは初期状態では開発環境が入らなくなったようです。でも、Cコンパイラー2だけは入っているため、インクルードファイルが見つからずに stdio.hがない というエラーになるようです。ということで、以下のコマンドで解決です。

$ pkg install -g 'GhostBSD*-dev'

以下のページに開発者さんが書いてました。("Why can’t I compile code or ports on GhostBSD?" のところです。)

再挑戦

$ ./install.sh 
$ cd tutorial/
$ ../target/bin/se c hello_world.e 
$ ./a.out 
Hello World.

今度は install.sh でコンパイラー一式ができました。2行目以降はできあがったコンパイラーの動作確認です。tutorial ディレクトリに "Hello World." と表示するサンプルプログラムがありますので、それをコンパイルして、その結果できたプログラムを実行しています。確かに "Hello World." と表示されました。めでたし、めでたし。

おことわり

この文章の内容は、筆者が所属している会社・団体とは一切関わりがありません。いわゆる「自主的な研究の成果の発表」というものです。

  1. 別にsudoでなくてもいいです。doasでも、お好きなものを。要するにルート権限が必要ってことです。

  2. 「Cコンパイラーも開発環境ではないか」と言われるとそういう気もします。なので、初期状態ではCコンパイラーすら入っていない、という環境も見たことがあります。確か過去のGhostBSDがそうだったような、、、

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?