Macで「30日でできる! OS自作入門」の開発環境準備 その0
仕事で組み込みLinux関連の業務をやるようになって、
今までOSというものをまるで勉強して来なかったので、
ちょうどいいタイミングだから勉強してみようと思い始めました。
- 作者: 川合秀実
- 出版社/メーカー: マイナビ出版
- 発売日: 2006/03/01
- メディア: Kindle版
- この商品を含むブログを見る
あと、TEDでマット・カッツの30日間チャレンジのススメを見たのもあって、30日でできそうなものを探していたのでちょうどよかった。
この本はWindows用で書かれている。しかし、先人には同じようにMacでトライしている人がいるので、臆せず調べながらやってみることに。
まずは、さっそく付属のCD-ROMからデータをコピってmake installしてみる。
が・・・。
$make install (省略) gcc -c -Os -o cpp0main.obj cpp0main.c In file included from cpp0main.c:8: ./cc1drv.c:26:5: error: second parameter of 'main' (argument array) must be of type 'char **' int main(int argc, UCHAR **argv) ^ 1 error generated. make[6]: *** [cpp0main.obj] Error 1 make[5]: *** [all] Error 2 make[4]: *** [gocpp0] Error 2 make[3]: *** [all] Error 2 make[2]: *** [all] Error 2 make[1]: *** [all] Error 2 make: *** [install] Error 2
どうやらOSXのgccの問題らしい。下のページを参考にgccをアップデートしてもう一回make install。
MacOSXでOS自作覚え書き 下準備編 - It works!
$make install (省略) gcc -Wl,-s -o gocc1 ../drv_stdc/cc1main.obj c-parse.o c-lang.o attribs.o c-errors.o c-lex.o c-pragma.o c-decl.o c-typeck.o c-convert.o c-aux-info.o c-common.o c-format.o c-semantics.o c-objc-common.o libcpp.lib libbackend.lib \ ../intl/libintl.lib ../libiberty/libiberty.lib ../go_lib/go_lib.lib ../go_lib/stdin.o ../drv_stdc/drv_stdc.obj ld: warning: option -s is obsolete and being ignored Undefined symbols for architecture x86_64: "___builtin_stdarg_start", referenced from: _pedwarn_c99 in c-errors.o _status_warning in c-format.o _build_stmt in c-semantics.o _build_message_string in libbackend.lib(diagnostic.o) _output_printf in libbackend.lib(diagnostic.o) _fnotice in libbackend.lib(diagnostic.o) _internal_error in libbackend.lib(diagnostic.o) ... ld: symbol(s) not found for architecture x86_64 collect2: error: ld returned 1 exit status make[4]: *** [gocc1] Error 1 make[3]: *** [all] Error 2 make[2]: *** [all] Error 2 make[1]: *** [all] Error 2 make: *** [install] Error 2
またしてもエラー。。。。。全然解決できなくて諦めました。
Macですでに完遂されている方のコードを参考にして次回から進めて行きます。
github.com
#30日で終わらない予感